Commit 5f2a2635a1a8ad726eedde4c69e275c4c3c2dba7

Authored by Андрей Ларионов
1 parent 29350503f1

Справочник Должности и все что с ним связано, шаблон админки

Showing 43 changed files with 11487 additions and 9 deletions Side-by-side Diff

app/Http/Controllers/Admin/JobTitlesController.php
... ... @@ -0,0 +1,97 @@
  1 +<?php
  2 +
  3 +namespace App\Http\Controllers\Admin;
  4 +
  5 +use App\Http\Controllers\Controller;
  6 +use App\Http\Requests\JobTitlesRequest;
  7 +use App\Models\Job_title;
  8 +use Illuminate\Http\Request;
  9 +
  10 +class JobTitlesController extends Controller
  11 +{
  12 + /**
  13 + * Display a listing of the resource.
  14 + *
  15 + * @return \Illuminate\Http\Response
  16 + */
  17 + public function index()
  18 + {
  19 + $Jobs = Job_title::query()->orderBy('name')->active()->paginate(15);
  20 + return view('admin.job_titles.index', compact('Jobs'));
  21 + }
  22 +
  23 + /**
  24 + * Show the form for creating a new resource.
  25 + *
  26 + * @return \Illuminate\Http\Response
  27 + */
  28 + public function create()
  29 + {
  30 + /*$items = Job_title::query()->
  31 + orderByDesc('sort')->
  32 + orderBy('name')->
  33 + active()->
  34 + get();*/
  35 +
  36 + return view('admin.job_titles.add');
  37 + }
  38 +
  39 + /**
  40 + * Store a newly created resource in storage.
  41 + *
  42 + * @param \Illuminate\Http\Request $request
  43 + * @return \Illuminate\Http\Response
  44 + */
  45 + public function store(JobTitlesRequest $request)
  46 + {
  47 + Job_title::create($request->all());
  48 + return redirect()->route('admin.job-titles.index');
  49 + }
  50 +
  51 + /**
  52 + * Display the specified resource.
  53 + *
  54 + * @param \App\Models\Job_title $job_title
  55 + * @return \Illuminate\Http\Response
  56 + */
  57 + public function show(Job_title $job_title)
  58 + {
  59 + //
  60 + }
  61 +
  62 + /**
  63 + * Show the form for editing the specified resource.
  64 + *
  65 + * @param \App\Models\Job_title $job_title
  66 + * @return \Illuminate\Http\Response
  67 + */
  68 + public function edit(Job_title $job_title)
  69 + {
  70 + return view('admin.job_titles.edit', compact('job_title'));
  71 + }
  72 +
  73 + /**
  74 + * Update the specified resource in storage.
  75 + *
  76 + * @param \Illuminate\Http\Request $request
  77 + * @param \App\Models\Job_title $job_title
  78 + * @return \Illuminate\Http\Response
  79 + */
  80 + public function update(JobTitlesRequest $request, Job_title $job_title)
  81 + {
  82 + $job_title->update($request->all());
  83 + return redirect()->route('admin.job-titles.index');
  84 + }
  85 +
  86 + /**
  87 + * Remove the specified resource from storage.
  88 + *
  89 + * @param \App\Models\Job_title $job_title
  90 + * @return \Illuminate\Http\Response
  91 + */
  92 + public function destroy(Job_title $job_title)
  93 + {
  94 + $job_title->update(['is_remove' => 1]);
  95 + return redirect()->route('admin.job-titles.index');
  96 + }
  97 +}
app/Http/Requests/JobTitlesRequest.php
... ... @@ -0,0 +1,57 @@
  1 +<?php
  2 +
  3 +namespace App\Http\Requests;
  4 +
  5 +use Illuminate\Foundation\Http\FormRequest;
  6 +
  7 +class JobTitlesRequest extends FormRequest
  8 +{
  9 + /**
  10 + * Determine if the user is authorized to make this request.
  11 + *
  12 + * @return bool
  13 + */
  14 + public function authorize()
  15 + {
  16 + return true;
  17 + }
  18 +
  19 + /**
  20 + * Get the validation rules that apply to the request.
  21 + *
  22 + * @return array<string, mixed>
  23 + */
  24 + public function rules()
  25 + {
  26 + return [
  27 + 'name' => [
  28 + 'required',
  29 + 'min:3',
  30 + 'max:100',
  31 + ],
  32 + 'parent_id' => [
  33 + 'numeric',
  34 + 'min:0',
  35 + 'max:9999999',
  36 + ],
  37 + ];
  38 + }
  39 +
  40 + public function messages() {
  41 + return [
  42 + 'required' => 'Поле «:attribute» обязательно для заполнения',
  43 + 'unique' => 'Такое значение поля «:attribute» уже используется',
  44 + 'min' => [
  45 + 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
  46 + 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
  47 + ],
  48 + 'max' => [
  49 + 'string' => 'Поле «:attribute» должно быть не больше :max символов',
  50 + 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
  51 + ],
  52 + 'mimes' => 'Файл «:attribute» должен иметь формат :values',
  53 + 'numeric' => 'В поле «:attribute» должно быть указано целое число от 0 до 9999999',
  54 + ];
  55 +
  56 + }
  57 +}
app/Models/Job_title.php
... ... @@ -21,6 +21,14 @@ class Job_title extends Model
21 21 return $this->belongsToMany(Ad_employer::class, 'ad_jobs');
22 22 }
23 23  
  24 + /*
  25 + * Связь таблицы job_titles с таблицей job_titles через ключ parent_id
  26 + многие-к-одному
  27 + */
  28 + public function parent() {
  29 + return $this->belongsTo(Job_title::class, 'parent_id');
  30 + }
  31 +
24 32 public function scopeActive($query) {
25 33 return $query->where('is_remove', '=', '0');
26 34 }
app/Providers/MyServiceProvider.php
... ... @@ -0,0 +1,49 @@
  1 +<?php
  2 +
  3 +namespace App\Providers;
  4 +
  5 +use App\Models\Job_title;
  6 +use Illuminate\Support\Facades\View;
  7 +use Illuminate\Support\ServiceProvider;
  8 +
  9 +class MyServiceProvider extends ServiceProvider
  10 +{
  11 + /**
  12 + * Register services.
  13 + *
  14 + * @return void
  15 + */
  16 + public function register()
  17 + {
  18 + //
  19 + }
  20 +
  21 + /**
  22 + * Bootstrap services.
  23 + *
  24 + * @return void
  25 + */
  26 + public function boot()
  27 + {
  28 + $views = ['admin.job_titles.parent_id'];
  29 + View::composer($views,
  30 + function($view)
  31 + {
  32 + static $items = null;
  33 +
  34 + if (is_null($items)) {
  35 + $items = Job_title::query()->
  36 + orderByDesc('sort')->
  37 + orderBy('name')->
  38 + active()->
  39 + get();
  40 + $parent = 0;
  41 + $view->with(['items' => $items, 'parent' => $parent]);
  42 + } else {
  43 + $view->with(['items' => $items]);
  44 + }
  45 +
  46 + }
  47 + );
  48 + }
  49 +}
... ... @@ -194,7 +194,7 @@ return [
194 194 // App\Providers\BroadcastServiceProvider::class,
195 195 App\Providers\EventServiceProvider::class,
196 196 App\Providers\RouteServiceProvider::class,
197   -
  197 + App\Providers\MyServiceProvider::class,
198 198 ],
199 199  
200 200 /*
database/migrations/2023_09_08_084707_alter_job_titles3_table.php
... ... @@ -0,0 +1,32 @@
  1 +<?php
  2 +
  3 +use Illuminate\Database\Migrations\Migration;
  4 +use Illuminate\Database\Schema\Blueprint;
  5 +use Illuminate\Support\Facades\Schema;
  6 +
  7 +return new class extends Migration
  8 +{
  9 + /**
  10 + * Run the migrations.
  11 + *
  12 + * @return void
  13 + */
  14 + public function up()
  15 + {
  16 + Schema::table('job_titles', function (Blueprint $table) {
  17 + $table->integer('sort')->default(100);
  18 + });
  19 + }
  20 +
  21 + /**
  22 + * Reverse the migrations.
  23 + *
  24 + * @return void
  25 + */
  26 + public function down()
  27 + {
  28 + Schema::table('job_titles', function (Blueprint $table) {
  29 + $table->dropColumn('sort');
  30 + });
  31 + }
  32 +};
html/public/assets/css/tailwind.css
... ... @@ -0,0 +1,3 @@
  1 +@tailwind base;
  2 +@tailwind components;
  3 +@tailwind utilities;
html/public/assets/css/tailwind.output.css
... ... @@ -0,0 +1 @@
  1 +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none;padding:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #d5d6d7}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#a0aec0}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#a0aec0}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:#a0aec0}input::placeholder,textarea::placeholder{color:#a0aec0}[role=button],button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}.form-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#e2e8f0;border-width:1px;border-radius:.25rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-input::-moz-placeholder{color:#9e9e9e;opacity:1}.form-input:-ms-input-placeholder{color:#9e9e9e;opacity:1}.form-input::-ms-input-placeholder{color:#9e9e9e;opacity:1}.form-input::placeholder{color:#9e9e9e;opacity:1}.form-input:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.form-textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#e2e8f0;border-width:1px;border-radius:.25rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-textarea::-moz-placeholder{color:#9e9e9e;opacity:1}.form-textarea:-ms-input-placeholder{color:#9e9e9e;opacity:1}.form-textarea::-ms-input-placeholder{color:#9e9e9e;opacity:1}.form-textarea::placeholder{color:#9e9e9e;opacity:1}.form-textarea:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.form-multiselect{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#e2e8f0;border-width:1px;border-radius:.25rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-multiselect:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.form-select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23a0aec0'%3E%3Cpath d='M15.3 9.3a1 1 0 011.4 1.4l-4 4a1 1 0 01-1.4 0l-4-4a1 1 0 011.4-1.4l3.3 3.29 3.3-3.3z'/%3E%3C/svg%3E");-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;background-repeat:no-repeat;background-color:#fff;border-color:#e2e8f0;border-width:1px;border-radius:.25rem;padding:.5rem 2.5rem .5rem .75rem;font-size:1rem;line-height:1.5;background-position:right .5rem center;background-size:1.5em 1.5em}.form-select::-ms-expand{color:#a0aec0;border:none}@media not print{.form-select::-ms-expand{display:none}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.form-select{padding-right:.75rem}}.form-select:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.form-checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;flex-shrink:0;height:1em;width:1em;color:#4299e1;background-color:#fff;border-color:#e2e8f0;border-width:1px;border-radius:.25rem}.form-checkbox:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.707 7.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4a1 1 0 00-1.414-1.414L7 8.586 5.707 7.293z'/%3E%3C/svg%3E");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}@media not print{.form-checkbox::-ms-check{border-width:1px;color:transparent;background:inherit;border-color:inherit;border-radius:inherit}}.form-checkbox:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.form-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;flex-shrink:0;border-radius:100%;height:1em;width:1em;color:#4299e1;background-color:#fff;border-color:#e2e8f0;border-width:1px}.form-radio:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}@media not print{.form-radio::-ms-check{border-width:1px;color:transparent;background:inherit;border-color:inherit;border-radius:inherit}}.form-radio:focus{outline:none;box-shadow:0 0 0 3px rgba(66,153,225,.5);border-color:#63b3ed}.space-y-2>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0.5rem*(1 - var(--space-y-reverse)));margin-bottom:calc(0.5rem*var(--space-y-reverse))}.space-x-3>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(0.75rem*var(--space-x-reverse));margin-left:calc(0.75rem*(1 - var(--space-x-reverse)))}.space-y-4>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(1rem*(1 - var(--space-y-reverse)));margin-bottom:calc(1rem*var(--space-y-reverse))}.space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.5rem*var(--space-x-reverse));margin-left:calc(1.5rem*(1 - var(--space-x-reverse)))}.divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--divide-y-reverse)));border-bottom-width:calc(1px*var(--divide-y-reverse))}.theme-dark .dark\:divide-gray-700>:not(template)~:not(template){--divide-opacity:1;border-color:#24262d;border-color:rgba(36,38,45,var(--divide-opacity))}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.bg-gray-50{--bg-opacity:1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.bg-red-100{--bg-opacity:1;background-color:#fde8e8;background-color:rgba(253,232,232,var(--bg-opacity))}.bg-red-600{--bg-opacity:1;background-color:#e02424;background-color:rgba(224,36,36,var(--bg-opacity))}.bg-orange-100{--bg-opacity:1;background-color:#feecdc;background-color:rgba(254,236,220,var(--bg-opacity))}.bg-green-100{--bg-opacity:1;background-color:#def7ec;background-color:rgba(222,247,236,var(--bg-opacity))}.bg-teal-100{--bg-opacity:1;background-color:#d5f5f6;background-color:rgba(213,245,246,var(--bg-opacity))}.bg-teal-500{--bg-opacity:1;background-color:#0694a2;background-color:rgba(6,148,162,var(--bg-opacity))}.bg-teal-600{--bg-opacity:1;background-color:#047481;background-color:rgba(4,116,129,var(--bg-opacity))}.bg-blue-100{--bg-opacity:1;background-color:#e1effe;background-color:rgba(225,239,254,var(--bg-opacity))}.bg-blue-500{--bg-opacity:1;background-color:#3f83f8;background-color:rgba(63,131,248,var(--bg-opacity))}.bg-blue-600{--bg-opacity:1;background-color:#1c64f2;background-color:rgba(28,100,242,var(--bg-opacity))}.bg-purple-600{--bg-opacity:1;background-color:#7e3af2;background-color:rgba(126,58,242,var(--bg-opacity))}.hover\:bg-gray-100:hover{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.hover\:bg-purple-700:hover{--bg-opacity:1;background-color:#6c2bd9;background-color:rgba(108,43,217,var(--bg-opacity))}.focus\:bg-white:focus{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.active\:bg-transparent:active{background-color:transparent}.active\:bg-purple-600:active{--bg-opacity:1;background-color:#7e3af2;background-color:rgba(126,58,242,var(--bg-opacity))}.theme-dark .dark\:bg-gray-700{--bg-opacity:1;background-color:#24262d;background-color:rgba(36,38,45,var(--bg-opacity))}.theme-dark .dark\:bg-gray-800{--bg-opacity:1;background-color:#1a1c23;background-color:rgba(26,28,35,var(--bg-opacity))}.theme-dark .dark\:bg-gray-900{--bg-opacity:1;background-color:#121317;background-color:rgba(18,19,23,var(--bg-opacity))}.theme-dark .dark\:bg-red-600{--bg-opacity:1;background-color:#e02424;background-color:rgba(224,36,36,var(--bg-opacity))}.theme-dark .dark\:bg-red-700{--bg-opacity:1;background-color:#c81e1e;background-color:rgba(200,30,30,var(--bg-opacity))}.theme-dark .dark\:bg-orange-500{--bg-opacity:1;background-color:#ff5a1f;background-color:rgba(255,90,31,var(--bg-opacity))}.theme-dark .dark\:bg-orange-600{--bg-opacity:1;background-color:#d03801;background-color:rgba(208,56,1,var(--bg-opacity))}.theme-dark .dark\:bg-green-500{--bg-opacity:1;background-color:#0e9f6e;background-color:rgba(14,159,110,var(--bg-opacity))}.theme-dark .dark\:bg-green-700{--bg-opacity:1;background-color:#046c4e;background-color:rgba(4,108,78,var(--bg-opacity))}.theme-dark .dark\:bg-teal-500{--bg-opacity:1;background-color:#0694a2;background-color:rgba(6,148,162,var(--bg-opacity))}.theme-dark .dark\:bg-blue-500{--bg-opacity:1;background-color:#3f83f8;background-color:rgba(63,131,248,var(--bg-opacity))}.theme-dark .dark\:hover\:bg-gray-800:hover{--bg-opacity:1;background-color:#1a1c23;background-color:rgba(26,28,35,var(--bg-opacity))}.bg-opacity-50{--bg-opacity:0.5}.border-transparent{border-color:transparent}.border-white{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.border-gray-100{--border-opacity:1;border-color:#f4f5f7;border-color:rgba(244,245,247,var(--border-opacity))}.border-gray-300{--border-opacity:1;border-color:#d5d6d7;border-color:rgba(213,214,215,var(--border-opacity))}.border-red-600{--border-opacity:1;border-color:#e02424;border-color:rgba(224,36,36,var(--border-opacity))}.border-green-600{--border-opacity:1;border-color:#057a55;border-color:rgba(5,122,85,var(--border-opacity))}.border-purple-600{--border-opacity:1;border-color:#7e3af2;border-color:rgba(126,58,242,var(--border-opacity))}.focus\:border-gray-500:focus{--border-opacity:1;border-color:#707275;border-color:rgba(112,114,117,var(--border-opacity))}.focus\:border-red-400:focus{--border-opacity:1;border-color:#f98080;border-color:rgba(249,128,128,var(--border-opacity))}.focus\:border-green-400:focus{--border-opacity:1;border-color:#31c48d;border-color:rgba(49,196,141,var(--border-opacity))}.focus\:border-purple-300:focus{--border-opacity:1;border-color:#cabffd;border-color:rgba(202,191,253,var(--border-opacity))}.focus\:border-purple-400:focus{--border-opacity:1;border-color:#ac94fa;border-color:rgba(172,148,250,var(--border-opacity))}.hover\:border-gray-500:hover{--border-opacity:1;border-color:#707275;border-color:rgba(112,114,117,var(--border-opacity))}.theme-dark .dark\:border-gray-600{--border-opacity:1;border-color:#4c4f52;border-color:rgba(76,79,82,var(--border-opacity))}.theme-dark .dark\:border-gray-700{--border-opacity:1;border-color:#24262d;border-color:rgba(36,38,45,var(--border-opacity))}.theme-dark .dark\:border-gray-800{--border-opacity:1;border-color:#1a1c23;border-color:rgba(26,28,35,var(--border-opacity))}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-full{border-radius:9999px}.rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.rounded-t-lg{border-top-left-radius:.5rem}.rounded-r-lg,.rounded-t-lg{border-top-right-radius:.5rem}.rounded-r-lg{border-bottom-right-radius:.5rem}.rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-tr-lg{border-top-right-radius:.5rem}.rounded-br-lg{border-bottom-right-radius:.5rem}.border-0{border-width:0}.border-2{border-width:2px}.border{border-width:1px}.border-r-0{border-right-width:0}.border-t{border-top-width:1px}.border-b{border-bottom-width:1px}.cursor-not-allowed{cursor:not-allowed}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.theme-dark .dark\:block{display:block}.theme-dark .dark\:hidden{display:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-12{height:3rem}.h-32{height:8rem}.h-full{height:100%}.h-screen{height:100vh}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-6xl{font-size:4rem}.leading-5{line-height:1.25rem}.leading-none{line-height:1}.leading-tight{line-height:1.25}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.my-8{margin-top:2rem;margin-bottom:2rem}.mx-auto{margin-left:auto;margin-right:auto}.-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.mt-1{margin-top:.25rem}.mr-1{margin-right:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.mb-2{margin-bottom:.5rem}.ml-2{margin-left:.5rem}.mr-3{margin-right:.75rem}.ml-3{margin-left:.75rem}.mt-4{margin-top:1rem}.mr-4{margin-right:1rem}.mb-4{margin-bottom:1rem}.ml-4{margin-left:1rem}.mr-5{margin-right:1.25rem}.mt-6{margin-top:1.5rem}.mr-6{margin-right:1.5rem}.mb-6{margin-bottom:1.5rem}.ml-6{margin-left:1.5rem}.mt-8{margin-top:2rem}.mb-8{margin-bottom:2rem}.mt-16{margin-top:4rem}.-mr-1{margin-right:-.25rem}.-ml-1{margin-left:-.25rem}.-mb-4{margin-bottom:-1rem}.max-h-0{max-height:0}.max-h-xl{max-height:36rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.min-h-screen{min-height:100vh}.min-w-0{min-width:0}.object-cover{-o-object-fit:cover;object-fit:cover}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-100{opacity:1}.focus\:outline-none:focus{outline:0}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.pr-2{padding-right:.5rem}.pl-2{padding-left:.5rem}.pl-8{padding-left:2rem}.pr-10{padding-right:2.5rem}.pl-10{padding-left:2.5rem}.pb-16{padding-bottom:4rem}.pr-20{padding-right:5rem}.pl-20{padding-left:5rem}.placeholder-gray-600::-moz-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.placeholder-gray-600:-ms-input-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.placeholder-gray-600::-ms-input-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.placeholder-gray-600::placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.focus\:placeholder-gray-500:focus::-moz-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.focus\:placeholder-gray-500:focus:-ms-input-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.focus\:placeholder-gray-500:focus::-ms-input-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.focus\:placeholder-gray-500:focus::placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.theme-dark .dark\:placeholder-gray-500::-moz-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.theme-dark .dark\:placeholder-gray-500:-ms-input-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.theme-dark .dark\:placeholder-gray-500::-ms-input-placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.theme-dark .dark\:placeholder-gray-500::placeholder{--placeholder-opacity:1;color:#707275;color:rgba(112,114,117,var(--placeholder-opacity))}.theme-dark .dark\:focus\:placeholder-gray-600:focus::-moz-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.theme-dark .dark\:focus\:placeholder-gray-600:focus:-ms-input-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.theme-dark .dark\:focus\:placeholder-gray-600:focus::-ms-input-placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.theme-dark .dark\:focus\:placeholder-gray-600:focus::placeholder{--placeholder-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--placeholder-opacity))}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{right:0;left:0}.inset-0,.inset-y-0{top:0;bottom:0}.top-0{top:0}.right-0{right:0}.left-0{left:0}.shadow-xs{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.shadow-md{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.shadow-inner{box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.fill-current{fill:currentColor}.text-left{text-align:left}.text-center{text-align:center}.text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#9e9e9e;color:rgba(158,158,158,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#707275;color:rgba(112,114,117,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#4c4f52;color:rgba(76,79,82,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#24262d;color:rgba(36,38,45,var(--text-opacity))}.text-gray-800{--text-opacity:1;color:#1a1c23;color:rgba(26,28,35,var(--text-opacity))}.text-red-600{--text-opacity:1;color:#e02424;color:rgba(224,36,36,var(--text-opacity))}.text-red-700{--text-opacity:1;color:#c81e1e;color:rgba(200,30,30,var(--text-opacity))}.text-orange-500{--text-opacity:1;color:#ff5a1f;color:rgba(255,90,31,var(--text-opacity))}.text-orange-700{--text-opacity:1;color:#b43403;color:rgba(180,52,3,var(--text-opacity))}.text-green-500{--text-opacity:1;color:#0e9f6e;color:rgba(14,159,110,var(--text-opacity))}.text-green-600{--text-opacity:1;color:#057a55;color:rgba(5,122,85,var(--text-opacity))}.text-green-700{--text-opacity:1;color:#046c4e;color:rgba(4,108,78,var(--text-opacity))}.text-teal-500{--text-opacity:1;color:#0694a2;color:rgba(6,148,162,var(--text-opacity))}.text-blue-500{--text-opacity:1;color:#3f83f8;color:rgba(63,131,248,var(--text-opacity))}.text-purple-100{--text-opacity:1;color:#edebfe;color:rgba(237,235,254,var(--text-opacity))}.text-purple-200{--text-opacity:1;color:#dcd7fe;color:rgba(220,215,254,var(--text-opacity))}.text-purple-600{--text-opacity:1;color:#7e3af2;color:rgba(126,58,242,var(--text-opacity))}.focus-within\:text-purple-500:focus-within{--text-opacity:1;color:#9061f9;color:rgba(144,97,249,var(--text-opacity))}.focus-within\:text-purple-600:focus-within{--text-opacity:1;color:#7e3af2;color:rgba(126,58,242,var(--text-opacity))}.hover\:text-gray-700:hover{--text-opacity:1;color:#24262d;color:rgba(36,38,45,var(--text-opacity))}.hover\:text-gray-800:hover{--text-opacity:1;color:#1a1c23;color:rgba(26,28,35,var(--text-opacity))}.active\:text-gray-500:active{--text-opacity:1;color:#707275;color:rgba(112,114,117,var(--text-opacity))}.theme-dark .dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.theme-dark .dark\:text-gray-100{--text-opacity:1;color:#f4f5f7;color:rgba(244,245,247,var(--text-opacity))}.theme-dark .dark\:text-gray-200{--text-opacity:1;color:#e5e7eb;color:rgba(229,231,235,var(--text-opacity))}.theme-dark .dark\:text-gray-300{--text-opacity:1;color:#d5d6d7;color:rgba(213,214,215,var(--text-opacity))}.theme-dark .dark\:text-gray-400{--text-opacity:1;color:#9e9e9e;color:rgba(158,158,158,var(--text-opacity))}.theme-dark .dark\:text-red-100{--text-opacity:1;color:#fde8e8;color:rgba(253,232,232,var(--text-opacity))}.theme-dark .dark\:text-red-400{--text-opacity:1;color:#f98080;color:rgba(249,128,128,var(--text-opacity))}.theme-dark .dark\:text-orange-100{--text-opacity:1;color:#feecdc;color:rgba(254,236,220,var(--text-opacity))}.theme-dark .dark\:text-green-100{--text-opacity:1;color:#def7ec;color:rgba(222,247,236,var(--text-opacity))}.theme-dark .dark\:text-green-400{--text-opacity:1;color:#31c48d;color:rgba(49,196,141,var(--text-opacity))}.theme-dark .dark\:text-teal-100{--text-opacity:1;color:#d5f5f6;color:rgba(213,245,246,var(--text-opacity))}.theme-dark .dark\:text-blue-100{--text-opacity:1;color:#e1effe;color:rgba(225,239,254,var(--text-opacity))}.theme-dark .dark\:text-purple-300{--text-opacity:1;color:#cabffd;color:rgba(202,191,253,var(--text-opacity))}.theme-dark .dark\:text-purple-400{--text-opacity:1;color:#ac94fa;color:rgba(172,148,250,var(--text-opacity))}.theme-dark .dark\:focus-within\:text-purple-400:focus-within{--text-opacity:1;color:#ac94fa;color:rgba(172,148,250,var(--text-opacity))}.theme-dark .dark\:hover\:text-gray-200:hover{--text-opacity:1;color:#e5e7eb;color:rgba(229,231,235,var(--text-opacity))}.uppercase{text-transform:uppercase}.hover\:underline:hover,.underline{text-decoration:underline}.tracking-wide{letter-spacing:.025em}.align-middle{vertical-align:middle}.whitespace-no-wrap{white-space:nowrap}.w-1{width:.25rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-12{width:3rem}.w-56{width:14rem}.w-64{width:16rem}.w-full{width:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.gap-6{grid-gap:1.5rem;gap:1.5rem}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.translate-x-1{--transform-translate-x:0.25rem}.-translate-x-20{--transform-translate-x:-5rem}.-translate-y-1{--transform-translate-y:-0.25rem}.translate-y-1\/2{--transform-translate-y:50%}.transition-all{transition-property:all}.transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform}.transition-colors{transition-property:background-color,border-color,color,fill,stroke}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150{transition-duration:.15s}.duration-300{transition-duration:.3s}.focus\:shadow-outline-gray:focus{box-shadow:0 0 0 3px rgba(213,214,215,.45)}.focus\:shadow-outline-red:focus{box-shadow:0 0 0 3px rgba(248,180,180,.45)}.focus\:shadow-outline-green:focus{box-shadow:0 0 0 3px rgba(132,225,188,.45)}.focus\:shadow-outline-purple:focus{box-shadow:0 0 0 3px rgba(202,191,253,.45)}.theme-dark .dark\:focus\:shadow-outline-gray:focus{box-shadow:0 0 0 3px rgba(213,214,215,.45)}@media (min-width:640px){.sm\:space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-top:calc(0px*(1 - var(--space-y-reverse)));margin-bottom:calc(0px*var(--space-y-reverse))}.sm\:space-x-6>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1.5rem*var(--space-x-reverse));margin-left:calc(1.5rem*(1 - var(--space-x-reverse)))}.sm\:rounded-lg{border-radius:.5rem}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-center{justify-content:center}.sm\:m-4{margin:1rem}.sm\:mt-auto{margin-top:auto}.sm\:max-w-xl{max-width:36rem}.sm\:p-12{padding:3rem}.sm\:py-2{padding-top:.5rem;padding-bottom:.5rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:w-auto{width:auto}.sm\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}}@media (min-width:768px){.md\:space-x-4>:not(template)~:not(template){--space-x-reverse:0;margin-right:calc(1rem*var(--space-x-reverse));margin-left:calc(1rem*(1 - var(--space-x-reverse)))}.md\:block{display:block}.md\:hidden{display:none}.md\:flex-row{flex-direction:row}.md\:items-end{align-items:flex-end}.md\:h-auto{height:auto}.md\:w-1\/2{width:50%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:mr-32{margin-right:8rem}}@media (min-width:1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
0 2 \ No newline at end of file
html/public/assets/img/create-account-office-dark.jpeg

66.4 KB

html/public/assets/img/create-account-office.jpeg

73.1 KB

html/public/assets/img/dashboard.png

61.1 KB

html/public/assets/img/forgot-password-office-dark.jpeg

57.4 KB

html/public/assets/img/forgot-password-office.jpeg

89.8 KB

html/public/assets/img/github.svg
... ... @@ -0,0 +1 @@
  1 +<svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg>
0 2 \ No newline at end of file
html/public/assets/img/login-office-dark.jpeg

13.9 KB

html/public/assets/img/login-office.jpeg

36.9 KB

html/public/assets/img/twitter.svg
... ... @@ -0,0 +1 @@
  1 +<svg viewBox="0 0 24 24" fill="currentColor"><path d="M23.954 4.569c-.885.389-1.83.654-2.825.775 1.014-.611 1.794-1.574 2.163-2.723-.951.555-2.005.959-3.127 1.184-.896-.959-2.173-1.559-3.591-1.559-2.717 0-4.92 2.203-4.92 4.917 0 .39.045.765.127 1.124C7.691 8.094 4.066 6.13 1.64 3.161c-.427.722-.666 1.561-.666 2.475 0 1.71.87 3.213 2.188 4.096-.807-.026-1.566-.248-2.228-.616v.061c0 2.385 1.693 4.374 3.946 4.827-.413.111-.849.171-1.296.171-.314 0-.615-.03-.916-.086.631 1.953 2.445 3.377 4.604 3.417-1.68 1.319-3.809 2.105-6.102 2.105-.39 0-.779-.023-1.17-.067 2.189 1.394 4.768 2.209 7.557 2.209 9.054 0 13.999-7.496 13.999-13.986 0-.209 0-.42-.015-.63.961-.689 1.8-1.56 2.46-2.548l-.047-.02z"/></svg>
0 2 \ No newline at end of file
html/public/assets/js/charts-bars.js
... ... @@ -0,0 +1,34 @@
  1 +/**
  2 + * For usage, visit Chart.js docs https://www.chartjs.org/docs/latest/
  3 + */
  4 +const barConfig = {
  5 + type: 'bar',
  6 + data: {
  7 + labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
  8 + datasets: [
  9 + {
  10 + label: 'Shoes',
  11 + backgroundColor: '#0694a2',
  12 + // borderColor: window.chartColors.red,
  13 + borderWidth: 1,
  14 + data: [-3, 14, 52, 74, 33, 90, 70],
  15 + },
  16 + {
  17 + label: 'Bags',
  18 + backgroundColor: '#7e3af2',
  19 + // borderColor: window.chartColors.blue,
  20 + borderWidth: 1,
  21 + data: [66, 33, 43, 12, 54, 62, 84],
  22 + },
  23 + ],
  24 + },
  25 + options: {
  26 + responsive: true,
  27 + legend: {
  28 + display: false,
  29 + },
  30 + },
  31 +}
  32 +
  33 +const barsCtx = document.getElementById('bars')
  34 +window.myBar = new Chart(barsCtx, barConfig)
html/public/assets/js/charts-lines.js
... ... @@ -0,0 +1,71 @@
  1 +/**
  2 + * For usage, visit Chart.js docs https://www.chartjs.org/docs/latest/
  3 + */
  4 +const lineConfig = {
  5 + type: 'line',
  6 + data: {
  7 + labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
  8 + datasets: [
  9 + {
  10 + label: 'Organic',
  11 + /**
  12 + * These colors come from Tailwind CSS palette
  13 + * https://tailwindcss.com/docs/customizing-colors/#default-color-palette
  14 + */
  15 + backgroundColor: '#0694a2',
  16 + borderColor: '#0694a2',
  17 + data: [43, 48, 40, 54, 67, 73, 70],
  18 + fill: false,
  19 + },
  20 + {
  21 + label: 'Paid',
  22 + fill: false,
  23 + /**
  24 + * These colors come from Tailwind CSS palette
  25 + * https://tailwindcss.com/docs/customizing-colors/#default-color-palette
  26 + */
  27 + backgroundColor: '#7e3af2',
  28 + borderColor: '#7e3af2',
  29 + data: [24, 50, 64, 74, 52, 51, 65],
  30 + },
  31 + ],
  32 + },
  33 + options: {
  34 + responsive: true,
  35 + /**
  36 + * Default legends are ugly and impossible to style.
  37 + * See examples in charts.html to add your own legends
  38 + * */
  39 + legend: {
  40 + display: false,
  41 + },
  42 + tooltips: {
  43 + mode: 'index',
  44 + intersect: false,
  45 + },
  46 + hover: {
  47 + mode: 'nearest',
  48 + intersect: true,
  49 + },
  50 + scales: {
  51 + x: {
  52 + display: true,
  53 + scaleLabel: {
  54 + display: true,
  55 + labelString: 'Month',
  56 + },
  57 + },
  58 + y: {
  59 + display: true,
  60 + scaleLabel: {
  61 + display: true,
  62 + labelString: 'Value',
  63 + },
  64 + },
  65 + },
  66 + },
  67 +}
  68 +
  69 +// change this to the id of your chart element in HMTL
  70 +const lineCtx = document.getElementById('line')
  71 +window.myLine = new Chart(lineCtx, lineConfig)
html/public/assets/js/charts-pie.js
... ... @@ -0,0 +1,35 @@
  1 +/**
  2 + * For usage, visit Chart.js docs https://www.chartjs.org/docs/latest/
  3 + */
  4 +const pieConfig = {
  5 + type: 'doughnut',
  6 + data: {
  7 + datasets: [
  8 + {
  9 + data: [33, 33, 33],
  10 + /**
  11 + * These colors come from Tailwind CSS palette
  12 + * https://tailwindcss.com/docs/customizing-colors/#default-color-palette
  13 + */
  14 + backgroundColor: ['#0694a2', '#1c64f2', '#7e3af2'],
  15 + label: 'Dataset 1',
  16 + },
  17 + ],
  18 + labels: ['Shoes', 'Shirts', 'Bags'],
  19 + },
  20 + options: {
  21 + responsive: true,
  22 + cutoutPercentage: 80,
  23 + /**
  24 + * Default legends are ugly and impossible to style.
  25 + * See examples in charts.html to add your own legends
  26 + * */
  27 + legend: {
  28 + display: false,
  29 + },
  30 + },
  31 +}
  32 +
  33 +// change this to the id of your chart element in HMTL
  34 +const pieCtx = document.getElementById('pie')
  35 +window.myPie = new Chart(pieCtx, pieConfig)
html/public/assets/js/focus-trap.js
... ... @@ -0,0 +1,51 @@
  1 +/**
  2 + * Limit focus to focusable elements inside `element`
  3 + * @param {HTMLElement} element - DOM element to focus trap inside
  4 + * @return {Function} cleanup function
  5 + */
  6 +function focusTrap(element) {
  7 + const focusableElements = getFocusableElements(element)
  8 + const firstFocusableEl = focusableElements[0]
  9 + const lastFocusableEl = focusableElements[focusableElements.length - 1]
  10 +
  11 + // Wait for the case the element was not yet rendered
  12 + setTimeout(() => firstFocusableEl.focus(), 50)
  13 +
  14 + /**
  15 + * Get all focusable elements inside `element`
  16 + * @param {HTMLElement} element - DOM element to focus trap inside
  17 + * @return {HTMLElement[]} List of focusable elements
  18 + */
  19 + function getFocusableElements(element = document) {
  20 + return [
  21 + ...element.querySelectorAll(
  22 + 'a, button, details, input, select, textarea, [tabindex]:not([tabindex="-1"])'
  23 + ),
  24 + ].filter((e) => !e.hasAttribute('disabled'))
  25 + }
  26 +
  27 + function handleKeyDown(e) {
  28 + const TAB = 9
  29 + const isTab = e.key.toLowerCase() === 'tab' || e.keyCode === TAB
  30 +
  31 + if (!isTab) return
  32 +
  33 + if (e.shiftKey) {
  34 + if (document.activeElement === firstFocusableEl) {
  35 + lastFocusableEl.focus()
  36 + e.preventDefault()
  37 + }
  38 + } else {
  39 + if (document.activeElement === lastFocusableEl) {
  40 + firstFocusableEl.focus()
  41 + e.preventDefault()
  42 + }
  43 + }
  44 + }
  45 +
  46 + element.addEventListener('keydown', handleKeyDown)
  47 +
  48 + return function cleanup() {
  49 + element.removeEventListener('keydown', handleKeyDown)
  50 + }
  51 +}
html/public/assets/js/init-alpine.js
... ... @@ -0,0 +1,62 @@
  1 +function data() {
  2 + function getThemeFromLocalStorage() {
  3 + // if user already changed the theme, use it
  4 + if (window.localStorage.getItem('dark')) {
  5 + return JSON.parse(window.localStorage.getItem('dark'))
  6 + }
  7 +
  8 + // else return their preferences
  9 + return (
  10 + !!window.matchMedia &&
  11 + window.matchMedia('(prefers-color-scheme: dark)').matches
  12 + )
  13 + }
  14 +
  15 + function setThemeToLocalStorage(value) {
  16 + window.localStorage.setItem('dark', value)
  17 + }
  18 +
  19 + return {
  20 + dark: getThemeFromLocalStorage(),
  21 + toggleTheme() {
  22 + this.dark = !this.dark
  23 + setThemeToLocalStorage(this.dark)
  24 + },
  25 + isSideMenuOpen: false,
  26 + toggleSideMenu() {
  27 + this.isSideMenuOpen = !this.isSideMenuOpen
  28 + },
  29 + closeSideMenu() {
  30 + this.isSideMenuOpen = false
  31 + },
  32 + isNotificationsMenuOpen: false,
  33 + toggleNotificationsMenu() {
  34 + this.isNotificationsMenuOpen = !this.isNotificationsMenuOpen
  35 + },
  36 + closeNotificationsMenu() {
  37 + this.isNotificationsMenuOpen = false
  38 + },
  39 + isProfileMenuOpen: false,
  40 + toggleProfileMenu() {
  41 + this.isProfileMenuOpen = !this.isProfileMenuOpen
  42 + },
  43 + closeProfileMenu() {
  44 + this.isProfileMenuOpen = false
  45 + },
  46 + isPagesMenuOpen: false,
  47 + togglePagesMenu() {
  48 + this.isPagesMenuOpen = !this.isPagesMenuOpen
  49 + },
  50 + // Modal
  51 + isModalOpen: false,
  52 + trapCleanup: null,
  53 + openModal() {
  54 + this.isModalOpen = true
  55 + this.trapCleanup = focusTrap(document.querySelector('#modal'))
  56 + },
  57 + closeModal() {
  58 + this.isModalOpen = false
  59 + this.trapCleanup()
  60 + },
  61 + }
  62 +}
html/public/buttons.html
Changes suppressed. Click to show
... ... @@ -0,0 +1,1012 @@
  1 +<!DOCTYPE html>
  2 +<html :class="{ 'theme-dark': dark }" x-data="data()" lang="en">
  3 + <head>
  4 + <meta charset="UTF-8" />
  5 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6 + <title>Buttons - Windmill Dashboard</title>
  7 + <link
  8 + href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"
  9 + rel="stylesheet"
  10 + />
  11 + <link rel="stylesheet" href="./assets/css/tailwind.output.css" />
  12 + <script
  13 + src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js"
  14 + defer
  15 + ></script>
  16 + <script src="./assets/js/init-alpine.js"></script>
  17 + </head>
  18 + <body>
  19 + <div
  20 + class="flex h-screen bg-gray-50 dark:bg-gray-900"
  21 + :class="{ 'overflow-hidden': isSideMenuOpen}"
  22 + >
  23 + <!-- Desktop sidebar -->
  24 + <aside
  25 + class="z-20 flex-shrink-0 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block"
  26 + >
  27 + <div class="py-4 text-gray-500 dark:text-gray-400">
  28 + <a
  29 + class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
  30 + href="#"
  31 + >
  32 + Windmill
  33 + </a>
  34 + <ul class="mt-6">
  35 + <li class="relative px-6 py-3">
  36 + <a
  37 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  38 + href="index.html"
  39 + >
  40 + <svg
  41 + class="w-5 h-5"
  42 + aria-hidden="true"
  43 + fill="none"
  44 + stroke-linecap="round"
  45 + stroke-linejoin="round"
  46 + stroke-width="2"
  47 + viewBox="0 0 24 24"
  48 + stroke="currentColor"
  49 + >
  50 + <path
  51 + d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"
  52 + ></path>
  53 + </svg>
  54 + <span class="ml-4">Dashboard</span>
  55 + </a>
  56 + </li>
  57 + </ul>
  58 + <ul>
  59 + <li class="relative px-6 py-3">
  60 + <a
  61 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  62 + href="forms.html"
  63 + >
  64 + <svg
  65 + class="w-5 h-5"
  66 + aria-hidden="true"
  67 + fill="none"
  68 + stroke-linecap="round"
  69 + stroke-linejoin="round"
  70 + stroke-width="2"
  71 + viewBox="0 0 24 24"
  72 + stroke="currentColor"
  73 + >
  74 + <path
  75 + d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
  76 + ></path>
  77 + </svg>
  78 + <span class="ml-4">Forms</span>
  79 + </a>
  80 + </li>
  81 + <li class="relative px-6 py-3">
  82 + <a
  83 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  84 + href="cards.html"
  85 + >
  86 + <svg
  87 + class="w-5 h-5"
  88 + aria-hidden="true"
  89 + fill="none"
  90 + stroke-linecap="round"
  91 + stroke-linejoin="round"
  92 + stroke-width="2"
  93 + viewBox="0 0 24 24"
  94 + stroke="currentColor"
  95 + >
  96 + <path
  97 + d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"
  98 + ></path>
  99 + </svg>
  100 + <span class="ml-4">Cards</span>
  101 + </a>
  102 + </li>
  103 + <li class="relative px-6 py-3">
  104 + <a
  105 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  106 + href="charts.html"
  107 + >
  108 + <svg
  109 + class="w-5 h-5"
  110 + aria-hidden="true"
  111 + fill="none"
  112 + stroke-linecap="round"
  113 + stroke-linejoin="round"
  114 + stroke-width="2"
  115 + viewBox="0 0 24 24"
  116 + stroke="currentColor"
  117 + >
  118 + <path
  119 + d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
  120 + ></path>
  121 + <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
  122 + </svg>
  123 + <span class="ml-4">Charts</span>
  124 + </a>
  125 + </li>
  126 + <li class="relative px-6 py-3">
  127 + <span
  128 + class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
  129 + aria-hidden="true"
  130 + ></span>
  131 + <a
  132 + class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100"
  133 + href="buttons.html"
  134 + >
  135 + <svg
  136 + class="w-5 h-5"
  137 + aria-hidden="true"
  138 + fill="none"
  139 + stroke-linecap="round"
  140 + stroke-linejoin="round"
  141 + stroke-width="2"
  142 + viewBox="0 0 24 24"
  143 + stroke="currentColor"
  144 + >
  145 + <path
  146 + d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"
  147 + ></path>
  148 + </svg>
  149 + <span class="ml-4">Buttons</span>
  150 + </a>
  151 + </li>
  152 + <li class="relative px-6 py-3">
  153 + <a
  154 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  155 + href="modals.html"
  156 + >
  157 + <svg
  158 + class="w-5 h-5"
  159 + aria-hidden="true"
  160 + fill="none"
  161 + stroke-linecap="round"
  162 + stroke-linejoin="round"
  163 + stroke-width="2"
  164 + viewBox="0 0 24 24"
  165 + stroke="currentColor"
  166 + >
  167 + <path
  168 + d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"
  169 + ></path>
  170 + </svg>
  171 + <span class="ml-4">Modals</span>
  172 + </a>
  173 + </li>
  174 + <li class="relative px-6 py-3">
  175 + <a
  176 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  177 + href="tables.html"
  178 + >
  179 + <svg
  180 + class="w-5 h-5"
  181 + aria-hidden="true"
  182 + fill="none"
  183 + stroke-linecap="round"
  184 + stroke-linejoin="round"
  185 + stroke-width="2"
  186 + viewBox="0 0 24 24"
  187 + stroke="currentColor"
  188 + >
  189 + <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
  190 + </svg>
  191 + <span class="ml-4">Tables</span>
  192 + </a>
  193 + </li>
  194 + <li class="relative px-6 py-3">
  195 + <button
  196 + class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  197 + @click="togglePagesMenu"
  198 + aria-haspopup="true"
  199 + >
  200 + <span class="inline-flex items-center">
  201 + <svg
  202 + class="w-5 h-5"
  203 + aria-hidden="true"
  204 + fill="none"
  205 + stroke-linecap="round"
  206 + stroke-linejoin="round"
  207 + stroke-width="2"
  208 + viewBox="0 0 24 24"
  209 + stroke="currentColor"
  210 + >
  211 + <path
  212 + d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"
  213 + ></path>
  214 + </svg>
  215 + <span class="ml-4">Pages</span>
  216 + </span>
  217 + <svg
  218 + class="w-4 h-4"
  219 + aria-hidden="true"
  220 + fill="currentColor"
  221 + viewBox="0 0 20 20"
  222 + >
  223 + <path
  224 + fill-rule="evenodd"
  225 + d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
  226 + clip-rule="evenodd"
  227 + ></path>
  228 + </svg>
  229 + </button>
  230 + <template x-if="isPagesMenuOpen">
  231 + <ul
  232 + x-transition:enter="transition-all ease-in-out duration-300"
  233 + x-transition:enter-start="opacity-25 max-h-0"
  234 + x-transition:enter-end="opacity-100 max-h-xl"
  235 + x-transition:leave="transition-all ease-in-out duration-300"
  236 + x-transition:leave-start="opacity-100 max-h-xl"
  237 + x-transition:leave-end="opacity-0 max-h-0"
  238 + class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900"
  239 + aria-label="submenu"
  240 + >
  241 + <li
  242 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  243 + >
  244 + <a class="w-full" href="pages/login.html">Login</a>
  245 + </li>
  246 + <li
  247 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  248 + >
  249 + <a class="w-full" href="pages/create-account.html">
  250 + Create account
  251 + </a>
  252 + </li>
  253 + <li
  254 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  255 + >
  256 + <a class="w-full" href="pages/forgot-password.html">
  257 + Forgot password
  258 + </a>
  259 + </li>
  260 + <li
  261 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  262 + >
  263 + <a class="w-full" href="pages/404.html">404</a>
  264 + </li>
  265 + <li
  266 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  267 + >
  268 + <a class="w-full" href="pages/blank.html">Blank</a>
  269 + </li>
  270 + </ul>
  271 + </template>
  272 + </li>
  273 + </ul>
  274 + <div class="px-6 my-6">
  275 + <button
  276 + class="flex items-center justify-between w-full px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  277 + >
  278 + Create account
  279 + <span class="ml-2" aria-hidden="true">+</span>
  280 + </button>
  281 + </div>
  282 + </div>
  283 + </aside>
  284 + <!-- Mobile sidebar -->
  285 + <!-- Backdrop -->
  286 + <div
  287 + x-show="isSideMenuOpen"
  288 + x-transition:enter="transition ease-in-out duration-150"
  289 + x-transition:enter-start="opacity-0"
  290 + x-transition:enter-end="opacity-100"
  291 + x-transition:leave="transition ease-in-out duration-150"
  292 + x-transition:leave-start="opacity-100"
  293 + x-transition:leave-end="opacity-0"
  294 + class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center"
  295 + ></div>
  296 + <aside
  297 + class="fixed inset-y-0 z-20 flex-shrink-0 w-64 mt-16 overflow-y-auto bg-white dark:bg-gray-800 md:hidden"
  298 + x-show="isSideMenuOpen"
  299 + x-transition:enter="transition ease-in-out duration-150"
  300 + x-transition:enter-start="opacity-0 transform -translate-x-20"
  301 + x-transition:enter-end="opacity-100"
  302 + x-transition:leave="transition ease-in-out duration-150"
  303 + x-transition:leave-start="opacity-100"
  304 + x-transition:leave-end="opacity-0 transform -translate-x-20"
  305 + @click.away="closeSideMenu"
  306 + @keydown.escape="closeSideMenu"
  307 + >
  308 + <div class="py-4 text-gray-500 dark:text-gray-400">
  309 + <a
  310 + class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
  311 + href="#"
  312 + >
  313 + Windmill
  314 + </a>
  315 + <ul class="mt-6">
  316 + <li class="relative px-6 py-3">
  317 + <a
  318 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  319 + href="index.html"
  320 + >
  321 + <svg
  322 + class="w-5 h-5"
  323 + aria-hidden="true"
  324 + fill="none"
  325 + stroke-linecap="round"
  326 + stroke-linejoin="round"
  327 + stroke-width="2"
  328 + viewBox="0 0 24 24"
  329 + stroke="currentColor"
  330 + >
  331 + <path
  332 + d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"
  333 + ></path>
  334 + </svg>
  335 + <span class="ml-4">Dashboard</span>
  336 + </a>
  337 + </li>
  338 + </ul>
  339 + <ul>
  340 + <li class="relative px-6 py-3">
  341 + <a
  342 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  343 + href="forms.html"
  344 + >
  345 + <svg
  346 + class="w-5 h-5"
  347 + aria-hidden="true"
  348 + fill="none"
  349 + stroke-linecap="round"
  350 + stroke-linejoin="round"
  351 + stroke-width="2"
  352 + viewBox="0 0 24 24"
  353 + stroke="currentColor"
  354 + >
  355 + <path
  356 + d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
  357 + ></path>
  358 + </svg>
  359 + <span class="ml-4">Forms</span>
  360 + </a>
  361 + </li>
  362 + <li class="relative px-6 py-3">
  363 + <a
  364 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  365 + href="cards.html"
  366 + >
  367 + <svg
  368 + class="w-5 h-5"
  369 + aria-hidden="true"
  370 + fill="none"
  371 + stroke-linecap="round"
  372 + stroke-linejoin="round"
  373 + stroke-width="2"
  374 + viewBox="0 0 24 24"
  375 + stroke="currentColor"
  376 + >
  377 + <path
  378 + d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"
  379 + ></path>
  380 + </svg>
  381 + <span class="ml-4">Cards</span>
  382 + </a>
  383 + </li>
  384 + <li class="relative px-6 py-3">
  385 + <a
  386 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  387 + href="charts.html"
  388 + >
  389 + <svg
  390 + class="w-5 h-5"
  391 + aria-hidden="true"
  392 + fill="none"
  393 + stroke-linecap="round"
  394 + stroke-linejoin="round"
  395 + stroke-width="2"
  396 + viewBox="0 0 24 24"
  397 + stroke="currentColor"
  398 + >
  399 + <path
  400 + d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
  401 + ></path>
  402 + <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
  403 + </svg>
  404 + <span class="ml-4">Charts</span>
  405 + </a>
  406 + </li>
  407 + <li class="relative px-6 py-3">
  408 + <span
  409 + class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
  410 + aria-hidden="true"
  411 + ></span>
  412 + <a
  413 + class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100"
  414 + href="buttons.html"
  415 + >
  416 + <svg
  417 + class="w-5 h-5"
  418 + aria-hidden="true"
  419 + fill="none"
  420 + stroke-linecap="round"
  421 + stroke-linejoin="round"
  422 + stroke-width="2"
  423 + viewBox="0 0 24 24"
  424 + stroke="currentColor"
  425 + >
  426 + <path
  427 + d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"
  428 + ></path>
  429 + </svg>
  430 + <span class="ml-4">Buttons</span>
  431 + </a>
  432 + </li>
  433 + <li class="relative px-6 py-3">
  434 + <a
  435 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  436 + href="modals.html"
  437 + >
  438 + <svg
  439 + class="w-5 h-5"
  440 + aria-hidden="true"
  441 + fill="none"
  442 + stroke-linecap="round"
  443 + stroke-linejoin="round"
  444 + stroke-width="2"
  445 + viewBox="0 0 24 24"
  446 + stroke="currentColor"
  447 + >
  448 + <path
  449 + d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"
  450 + ></path>
  451 + </svg>
  452 + <span class="ml-4">Modals</span>
  453 + </a>
  454 + </li>
  455 + <li class="relative px-6 py-3">
  456 + <a
  457 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  458 + href="tables.html"
  459 + >
  460 + <svg
  461 + class="w-5 h-5"
  462 + aria-hidden="true"
  463 + fill="none"
  464 + stroke-linecap="round"
  465 + stroke-linejoin="round"
  466 + stroke-width="2"
  467 + viewBox="0 0 24 24"
  468 + stroke="currentColor"
  469 + >
  470 + <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
  471 + </svg>
  472 + <span class="ml-4">Tables</span>
  473 + </a>
  474 + </li>
  475 + <li class="relative px-6 py-3">
  476 + <button
  477 + class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  478 + @click="togglePagesMenu"
  479 + aria-haspopup="true"
  480 + >
  481 + <span class="inline-flex items-center">
  482 + <svg
  483 + class="w-5 h-5"
  484 + aria-hidden="true"
  485 + fill="none"
  486 + stroke-linecap="round"
  487 + stroke-linejoin="round"
  488 + stroke-width="2"
  489 + viewBox="0 0 24 24"
  490 + stroke="currentColor"
  491 + >
  492 + <path
  493 + d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"
  494 + ></path>
  495 + </svg>
  496 + <span class="ml-4">Pages</span>
  497 + </span>
  498 + <svg
  499 + class="w-4 h-4"
  500 + aria-hidden="true"
  501 + fill="currentColor"
  502 + viewBox="0 0 20 20"
  503 + >
  504 + <path
  505 + fill-rule="evenodd"
  506 + d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
  507 + clip-rule="evenodd"
  508 + ></path>
  509 + </svg>
  510 + </button>
  511 + <template x-if="isPagesMenuOpen">
  512 + <ul
  513 + x-transition:enter="transition-all ease-in-out duration-300"
  514 + x-transition:enter-start="opacity-25 max-h-0"
  515 + x-transition:enter-end="opacity-100 max-h-xl"
  516 + x-transition:leave="transition-all ease-in-out duration-300"
  517 + x-transition:leave-start="opacity-100 max-h-xl"
  518 + x-transition:leave-end="opacity-0 max-h-0"
  519 + class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900"
  520 + aria-label="submenu"
  521 + >
  522 + <li
  523 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  524 + >
  525 + <a class="w-full" href="pages/login.html">Login</a>
  526 + </li>
  527 + <li
  528 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  529 + >
  530 + <a class="w-full" href="pages/create-account.html">
  531 + Create account
  532 + </a>
  533 + </li>
  534 + <li
  535 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  536 + >
  537 + <a class="w-full" href="pages/forgot-password.html">
  538 + Forgot password
  539 + </a>
  540 + </li>
  541 + <li
  542 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  543 + >
  544 + <a class="w-full" href="pages/404.html">404</a>
  545 + </li>
  546 + <li
  547 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  548 + >
  549 + <a class="w-full" href="pages/blank.html">Blank</a>
  550 + </li>
  551 + </ul>
  552 + </template>
  553 + </li>
  554 + </ul>
  555 + <div class="px-6 my-6">
  556 + <button
  557 + class="flex items-center justify-between px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  558 + >
  559 + Create account
  560 + <span class="ml-2" aria-hidden="true">+</span>
  561 + </button>
  562 + </div>
  563 + </div>
  564 + </aside>
  565 + <div class="flex flex-col flex-1">
  566 + <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800">
  567 + <div
  568 + class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300"
  569 + >
  570 + <!-- Mobile hamburger -->
  571 + <button
  572 + class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple"
  573 + @click="toggleSideMenu"
  574 + aria-label="Menu"
  575 + >
  576 + <svg
  577 + class="w-6 h-6"
  578 + aria-hidden="true"
  579 + fill="currentColor"
  580 + viewBox="0 0 20 20"
  581 + >
  582 + <path
  583 + fill-rule="evenodd"
  584 + d="M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z"
  585 + clip-rule="evenodd"
  586 + ></path>
  587 + </svg>
  588 + </button>
  589 + <!-- Search input -->
  590 + <div class="flex justify-center flex-1 lg:mr-32">
  591 + <div
  592 + class="relative w-full max-w-xl mr-6 focus-within:text-purple-500"
  593 + >
  594 + <div class="absolute inset-y-0 flex items-center pl-2">
  595 + <svg
  596 + class="w-4 h-4"
  597 + aria-hidden="true"
  598 + fill="currentColor"
  599 + viewBox="0 0 20 20"
  600 + >
  601 + <path
  602 + fill-rule="evenodd"
  603 + d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z"
  604 + clip-rule="evenodd"
  605 + ></path>
  606 + </svg>
  607 + </div>
  608 + <input
  609 + class="w-full pl-8 pr-2 text-sm text-gray-700 placeholder-gray-600 bg-gray-100 border-0 rounded-md dark:placeholder-gray-500 dark:focus:shadow-outline-gray dark:focus:placeholder-gray-600 dark:bg-gray-700 dark:text-gray-200 focus:placeholder-gray-500 focus:bg-white focus:border-purple-300 focus:outline-none focus:shadow-outline-purple form-input"
  610 + type="text"
  611 + placeholder="Search for projects"
  612 + aria-label="Search"
  613 + />
  614 + </div>
  615 + </div>
  616 + <ul class="flex items-center flex-shrink-0 space-x-6">
  617 + <!-- Theme toggler -->
  618 + <li class="flex">
  619 + <button
  620 + class="rounded-md focus:outline-none focus:shadow-outline-purple"
  621 + @click="toggleTheme"
  622 + aria-label="Toggle color mode"
  623 + >
  624 + <template x-if="!dark">
  625 + <svg
  626 + class="w-5 h-5"
  627 + aria-hidden="true"
  628 + fill="currentColor"
  629 + viewBox="0 0 20 20"
  630 + >
  631 + <path
  632 + d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"
  633 + ></path>
  634 + </svg>
  635 + </template>
  636 + <template x-if="dark">
  637 + <svg
  638 + class="w-5 h-5"
  639 + aria-hidden="true"
  640 + fill="currentColor"
  641 + viewBox="0 0 20 20"
  642 + >
  643 + <path
  644 + fill-rule="evenodd"
  645 + d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z"
  646 + clip-rule="evenodd"
  647 + ></path>
  648 + </svg>
  649 + </template>
  650 + </button>
  651 + </li>
  652 + <!-- Notifications menu -->
  653 + <li class="relative">
  654 + <button
  655 + class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple"
  656 + @click="toggleNotificationsMenu"
  657 + @keydown.escape="closeNotificationsMenu"
  658 + aria-label="Notifications"
  659 + aria-haspopup="true"
  660 + >
  661 + <svg
  662 + class="w-5 h-5"
  663 + aria-hidden="true"
  664 + fill="currentColor"
  665 + viewBox="0 0 20 20"
  666 + >
  667 + <path
  668 + d="M10 2a6 6 0 00-6 6v3.586l-.707.707A1 1 0 004 14h12a1 1 0 00.707-1.707L16 11.586V8a6 6 0 00-6-6zM10 18a3 3 0 01-3-3h6a3 3 0 01-3 3z"
  669 + ></path>
  670 + </svg>
  671 + <!-- Notification badge -->
  672 + <span
  673 + aria-hidden="true"
  674 + class="absolute top-0 right-0 inline-block w-3 h-3 transform translate-x-1 -translate-y-1 bg-red-600 border-2 border-white rounded-full dark:border-gray-800"
  675 + ></span>
  676 + </button>
  677 + <template x-if="isNotificationsMenuOpen">
  678 + <ul
  679 + x-transition:leave="transition ease-in duration-150"
  680 + x-transition:leave-start="opacity-100"
  681 + x-transition:leave-end="opacity-0"
  682 + @click.away="closeNotificationsMenu"
  683 + @keydown.escape="closeNotificationsMenu"
  684 + class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:text-gray-300 dark:border-gray-700 dark:bg-gray-700"
  685 + aria-label="submenu"
  686 + >
  687 + <li class="flex">
  688 + <a
  689 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  690 + href="#"
  691 + >
  692 + <span>Messages</span>
  693 + <span
  694 + class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600"
  695 + >
  696 + 13
  697 + </span>
  698 + </a>
  699 + </li>
  700 + <li class="flex">
  701 + <a
  702 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  703 + href="#"
  704 + >
  705 + <span>Sales</span>
  706 + <span
  707 + class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600"
  708 + >
  709 + 2
  710 + </span>
  711 + </a>
  712 + </li>
  713 + <li class="flex">
  714 + <a
  715 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  716 + href="#"
  717 + >
  718 + <span>Alerts</span>
  719 + </a>
  720 + </li>
  721 + </ul>
  722 + </template>
  723 + </li>
  724 + <!-- Profile menu -->
  725 + <li class="relative">
  726 + <button
  727 + class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none"
  728 + @click="toggleProfileMenu"
  729 + @keydown.escape="closeProfileMenu"
  730 + aria-label="Account"
  731 + aria-haspopup="true"
  732 + >
  733 + <img
  734 + class="object-cover w-8 h-8 rounded-full"
  735 + src="https://images.unsplash.com/photo-1502378735452-bc7d86632805?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&s=aa3a807e1bbdfd4364d1f449eaa96d82"
  736 + alt=""
  737 + aria-hidden="true"
  738 + />
  739 + </button>
  740 + <template x-if="isProfileMenuOpen">
  741 + <ul
  742 + x-transition:leave="transition ease-in duration-150"
  743 + x-transition:leave-start="opacity-100"
  744 + x-transition:leave-end="opacity-0"
  745 + @click.away="closeProfileMenu"
  746 + @keydown.escape="closeProfileMenu"
  747 + class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:border-gray-700 dark:text-gray-300 dark:bg-gray-700"
  748 + aria-label="submenu"
  749 + >
  750 + <li class="flex">
  751 + <a
  752 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  753 + href="#"
  754 + >
  755 + <svg
  756 + class="w-4 h-4 mr-3"
  757 + aria-hidden="true"
  758 + fill="none"
  759 + stroke-linecap="round"
  760 + stroke-linejoin="round"
  761 + stroke-width="2"
  762 + viewBox="0 0 24 24"
  763 + stroke="currentColor"
  764 + >
  765 + <path
  766 + d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"
  767 + ></path>
  768 + </svg>
  769 + <span>Profile</span>
  770 + </a>
  771 + </li>
  772 + <li class="flex">
  773 + <a
  774 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  775 + href="#"
  776 + >
  777 + <svg
  778 + class="w-4 h-4 mr-3"
  779 + aria-hidden="true"
  780 + fill="none"
  781 + stroke-linecap="round"
  782 + stroke-linejoin="round"
  783 + stroke-width="2"
  784 + viewBox="0 0 24 24"
  785 + stroke="currentColor"
  786 + >
  787 + <path
  788 + d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"
  789 + ></path>
  790 + <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
  791 + </svg>
  792 + <span>Settings</span>
  793 + </a>
  794 + </li>
  795 + <li class="flex">
  796 + <a
  797 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  798 + href="#"
  799 + >
  800 + <svg
  801 + class="w-4 h-4 mr-3"
  802 + aria-hidden="true"
  803 + fill="none"
  804 + stroke-linecap="round"
  805 + stroke-linejoin="round"
  806 + stroke-width="2"
  807 + viewBox="0 0 24 24"
  808 + stroke="currentColor"
  809 + >
  810 + <path
  811 + d="M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1"
  812 + ></path>
  813 + </svg>
  814 + <span>Log out</span>
  815 + </a>
  816 + </li>
  817 + </ul>
  818 + </template>
  819 + </li>
  820 + </ul>
  821 + </div>
  822 + </header>
  823 + <main class="h-full overflow-y-auto">
  824 + <div class="container grid px-6 mx-auto">
  825 + <h2
  826 + class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"
  827 + >
  828 + Buttons
  829 + </h2>
  830 + <!-- CTA -->
  831 + <a
  832 + class="flex items-center justify-between p-4 mb-8 text-sm font-semibold text-purple-100 bg-purple-600 rounded-lg shadow-md focus:outline-none focus:shadow-outline-purple"
  833 + href="https://github.com/estevanmaito/windmill-dashboard"
  834 + >
  835 + <div class="flex items-center">
  836 + <svg
  837 + class="w-5 h-5 mr-2"
  838 + fill="currentColor"
  839 + viewBox="0 0 20 20"
  840 + >
  841 + <path
  842 + d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"
  843 + ></path>
  844 + </svg>
  845 + <span>Star this project on GitHub</span>
  846 + </div>
  847 + <span>View more &RightArrow;</span>
  848 + </a>
  849 +
  850 + <!-- Button sizes -->
  851 + <h4
  852 + class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
  853 + >
  854 + Sizes
  855 + </h4>
  856 + <div
  857 + class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"
  858 + >
  859 + <!-- Divs are used just to display the examples. Use only the button. -->
  860 + <div>
  861 + <button
  862 + class="px-10 py-4 font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  863 + >
  864 + Larger button
  865 + </button>
  866 + </div>
  867 +
  868 + <!-- Divs are used just to display the examples. Use only the button. -->
  869 + <div>
  870 + <button
  871 + class="px-5 py-3 font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  872 + >
  873 + Large button
  874 + </button>
  875 + </div>
  876 +
  877 + <!-- Divs are used just to display the examples. Use only the button. -->
  878 + <div>
  879 + <button
  880 + class="px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  881 + >
  882 + Regular
  883 + </button>
  884 + </div>
  885 +
  886 + <!-- Divs are used just to display the examples. Use only the button. -->
  887 + <div>
  888 + <!-- For disabled buttons ADD these classes:
  889 + opacity-50 cursor-not-allowed
  890 +
  891 + And REMOVE these classes:
  892 + active:bg-purple-600 hover:bg-purple-700 focus:shadow-outline-purple
  893 + -->
  894 + <button
  895 + class="px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg opacity-50 cursor-not-allowed focus:outline-none"
  896 + >
  897 + Disabled
  898 + </button>
  899 + </div>
  900 +
  901 + <!-- Divs are used just to display the examples. Use only the button. -->
  902 + <div>
  903 + <button
  904 + class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  905 + >
  906 + Small
  907 + </button>
  908 + </div>
  909 + </div>
  910 + <p class="mb-8 text-gray-700 dark:text-gray-400">
  911 + Apply
  912 + <code>w-full</code>
  913 + to any button to create a block level button.
  914 + </p>
  915 +
  916 + <!-- Buttons with icons -->
  917 + <h4
  918 + class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
  919 + >
  920 + Icons
  921 + </h4>
  922 + <div
  923 + class="flex flex-col flex-wrap mb-8 space-y-4 md:flex-row md:items-end md:space-x-4"
  924 + >
  925 + <!-- Divs are used just to display the examples. Use only the button. -->
  926 + <div>
  927 + <button
  928 + class="flex items-center justify-between px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  929 + >
  930 + <span>Icon right</span>
  931 + <svg
  932 + class="w-4 h-4 ml-2 -mr-1"
  933 + fill="currentColor"
  934 + aria-hidden="true"
  935 + viewBox="0 0 20 20"
  936 + >
  937 + <path
  938 + d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z"
  939 + clip-rule="evenodd"
  940 + fill-rule="evenodd"
  941 + ></path>
  942 + </svg>
  943 + </button>
  944 + </div>
  945 +
  946 + <!-- Divs are used just to display the examples. Use only the button. -->
  947 + <div>
  948 + <button
  949 + class="flex items-center justify-between px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  950 + >
  951 + <svg
  952 + class="w-4 h-4 mr-2 -ml-1"
  953 + fill="currentColor"
  954 + aria-hidden="true"
  955 + viewBox="0 0 20 20"
  956 + >
  957 + <path
  958 + d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z"
  959 + clip-rule="evenodd"
  960 + fill-rule="evenodd"
  961 + ></path>
  962 + </svg>
  963 + <span>Icon left</span>
  964 + </button>
  965 + </div>
  966 +
  967 + <!-- Divs are used just to display the examples. Use only the button. -->
  968 + <div>
  969 + <button
  970 + class="flex items-center justify-between px-2 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  971 + aria-label="Like"
  972 + >
  973 + <svg
  974 + class="w-5 h-5"
  975 + aria-hidden="true"
  976 + fill="currentColor"
  977 + viewBox="0 0 20 20"
  978 + >
  979 + <path
  980 + d="M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z"
  981 + clip-rule="evenodd"
  982 + fill-rule="evenodd"
  983 + ></path>
  984 + </svg>
  985 + </button>
  986 + </div>
  987 +
  988 + <!-- Divs are used just to display the examples. Use only the button. -->
  989 + <div>
  990 + <button
  991 + class="flex items-center justify-between px-2 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-full active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  992 + aria-label="Edit"
  993 + >
  994 + <svg
  995 + class="w-5 h-5"
  996 + aria-hidden="true"
  997 + fill="currentColor"
  998 + viewBox="0 0 20 20"
  999 + >
  1000 + <path
  1001 + d="M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z"
  1002 + ></path>
  1003 + </svg>
  1004 + </button>
  1005 + </div>
  1006 + </div>
  1007 + </div>
  1008 + </main>
  1009 + </div>
  1010 + </div>
  1011 + </body>
  1012 +</html>
html/public/cards.html
Changes suppressed. Click to show
... ... @@ -0,0 +1,1020 @@
  1 +<!DOCTYPE html>
  2 +<html :class="{ 'theme-dark': dark }" x-data="data()" lang="en">
  3 + <head>
  4 + <meta charset="UTF-8" />
  5 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6 + <title>Cards - Windmill Dashboard</title>
  7 + <link
  8 + href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"
  9 + rel="stylesheet"
  10 + />
  11 + <link rel="stylesheet" href="./assets/css/tailwind.output.css" />
  12 + <script
  13 + src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js"
  14 + defer
  15 + ></script>
  16 + <script src="./assets/js/init-alpine.js"></script>
  17 + </head>
  18 + <body>
  19 + <div
  20 + class="flex h-screen bg-gray-50 dark:bg-gray-900"
  21 + :class="{ 'overflow-hidden': isSideMenuOpen}"
  22 + >
  23 + <!-- Desktop sidebar -->
  24 + <aside
  25 + class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0"
  26 + >
  27 + <div class="py-4 text-gray-500 dark:text-gray-400">
  28 + <a
  29 + class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
  30 + href="#"
  31 + >
  32 + Windmill
  33 + </a>
  34 + <ul class="mt-6">
  35 + <li class="relative px-6 py-3">
  36 + <a
  37 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  38 + href="index.html"
  39 + >
  40 + <svg
  41 + class="w-5 h-5"
  42 + aria-hidden="true"
  43 + fill="none"
  44 + stroke-linecap="round"
  45 + stroke-linejoin="round"
  46 + stroke-width="2"
  47 + viewBox="0 0 24 24"
  48 + stroke="currentColor"
  49 + >
  50 + <path
  51 + d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"
  52 + ></path>
  53 + </svg>
  54 + <span class="ml-4">Dashboard</span>
  55 + </a>
  56 + </li>
  57 + </ul>
  58 + <ul>
  59 + <li class="relative px-6 py-3">
  60 + <a
  61 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  62 + href="forms.html"
  63 + >
  64 + <svg
  65 + class="w-5 h-5"
  66 + aria-hidden="true"
  67 + fill="none"
  68 + stroke-linecap="round"
  69 + stroke-linejoin="round"
  70 + stroke-width="2"
  71 + viewBox="0 0 24 24"
  72 + stroke="currentColor"
  73 + >
  74 + <path
  75 + d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
  76 + ></path>
  77 + </svg>
  78 + <span class="ml-4">Forms</span>
  79 + </a>
  80 + </li>
  81 + <li class="relative px-6 py-3">
  82 + <span
  83 + class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
  84 + aria-hidden="true"
  85 + ></span>
  86 + <a
  87 + class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100"
  88 + href="cards.html"
  89 + >
  90 + <svg
  91 + class="w-5 h-5"
  92 + aria-hidden="true"
  93 + fill="none"
  94 + stroke-linecap="round"
  95 + stroke-linejoin="round"
  96 + stroke-width="2"
  97 + viewBox="0 0 24 24"
  98 + stroke="currentColor"
  99 + >
  100 + <path
  101 + d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"
  102 + ></path>
  103 + </svg>
  104 + <span class="ml-4">Cards</span>
  105 + </a>
  106 + </li>
  107 + <li class="relative px-6 py-3">
  108 + <a
  109 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  110 + href="charts.html"
  111 + >
  112 + <svg
  113 + class="w-5 h-5"
  114 + aria-hidden="true"
  115 + fill="none"
  116 + stroke-linecap="round"
  117 + stroke-linejoin="round"
  118 + stroke-width="2"
  119 + viewBox="0 0 24 24"
  120 + stroke="currentColor"
  121 + >
  122 + <path
  123 + d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
  124 + ></path>
  125 + <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
  126 + </svg>
  127 + <span class="ml-4">Charts</span>
  128 + </a>
  129 + </li>
  130 + <li class="relative px-6 py-3">
  131 + <a
  132 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  133 + href="buttons.html"
  134 + >
  135 + <svg
  136 + class="w-5 h-5"
  137 + aria-hidden="true"
  138 + fill="none"
  139 + stroke-linecap="round"
  140 + stroke-linejoin="round"
  141 + stroke-width="2"
  142 + viewBox="0 0 24 24"
  143 + stroke="currentColor"
  144 + >
  145 + <path
  146 + d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"
  147 + ></path>
  148 + </svg>
  149 + <span class="ml-4">Buttons</span>
  150 + </a>
  151 + </li>
  152 + <li class="relative px-6 py-3">
  153 + <a
  154 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  155 + href="modals.html"
  156 + >
  157 + <svg
  158 + class="w-5 h-5"
  159 + aria-hidden="true"
  160 + fill="none"
  161 + stroke-linecap="round"
  162 + stroke-linejoin="round"
  163 + stroke-width="2"
  164 + viewBox="0 0 24 24"
  165 + stroke="currentColor"
  166 + >
  167 + <path
  168 + d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"
  169 + ></path>
  170 + </svg>
  171 + <span class="ml-4">Modals</span>
  172 + </a>
  173 + </li>
  174 + <li class="relative px-6 py-3">
  175 + <a
  176 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  177 + href="tables.html"
  178 + >
  179 + <svg
  180 + class="w-5 h-5"
  181 + aria-hidden="true"
  182 + fill="none"
  183 + stroke-linecap="round"
  184 + stroke-linejoin="round"
  185 + stroke-width="2"
  186 + viewBox="0 0 24 24"
  187 + stroke="currentColor"
  188 + >
  189 + <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
  190 + </svg>
  191 + <span class="ml-4">Tables</span>
  192 + </a>
  193 + </li>
  194 + <li class="relative px-6 py-3">
  195 + <button
  196 + class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  197 + @click="togglePagesMenu"
  198 + aria-haspopup="true"
  199 + >
  200 + <span class="inline-flex items-center">
  201 + <svg
  202 + class="w-5 h-5"
  203 + aria-hidden="true"
  204 + fill="none"
  205 + stroke-linecap="round"
  206 + stroke-linejoin="round"
  207 + stroke-width="2"
  208 + viewBox="0 0 24 24"
  209 + stroke="currentColor"
  210 + >
  211 + <path
  212 + d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"
  213 + ></path>
  214 + </svg>
  215 + <span class="ml-4">Pages</span>
  216 + </span>
  217 + <svg
  218 + class="w-4 h-4"
  219 + aria-hidden="true"
  220 + fill="currentColor"
  221 + viewBox="0 0 20 20"
  222 + >
  223 + <path
  224 + fill-rule="evenodd"
  225 + d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
  226 + clip-rule="evenodd"
  227 + ></path>
  228 + </svg>
  229 + </button>
  230 + <template x-if="isPagesMenuOpen">
  231 + <ul
  232 + x-transition:enter="transition-all ease-in-out duration-300"
  233 + x-transition:enter-start="opacity-25 max-h-0"
  234 + x-transition:enter-end="opacity-100 max-h-xl"
  235 + x-transition:leave="transition-all ease-in-out duration-300"
  236 + x-transition:leave-start="opacity-100 max-h-xl"
  237 + x-transition:leave-end="opacity-0 max-h-0"
  238 + class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900"
  239 + aria-label="submenu"
  240 + >
  241 + <li
  242 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  243 + >
  244 + <a class="w-full" href="pages/login.html">Login</a>
  245 + </li>
  246 + <li
  247 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  248 + >
  249 + <a class="w-full" href="pages/create-account.html">
  250 + Create account
  251 + </a>
  252 + </li>
  253 + <li
  254 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  255 + >
  256 + <a class="w-full" href="pages/forgot-password.html">
  257 + Forgot password
  258 + </a>
  259 + </li>
  260 + <li
  261 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  262 + >
  263 + <a class="w-full" href="pages/404.html">404</a>
  264 + </li>
  265 + <li
  266 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  267 + >
  268 + <a class="w-full" href="pages/blank.html">Blank</a>
  269 + </li>
  270 + </ul>
  271 + </template>
  272 + </li>
  273 + </ul>
  274 + <div class="px-6 my-6">
  275 + <button
  276 + class="flex items-center justify-between w-full px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  277 + >
  278 + Create account
  279 + <span class="ml-2" aria-hidden="true">+</span>
  280 + </button>
  281 + </div>
  282 + </div>
  283 + </aside>
  284 + <!-- Mobile sidebar -->
  285 + <!-- Backdrop -->
  286 + <div
  287 + x-show="isSideMenuOpen"
  288 + x-transition:enter="transition ease-in-out duration-150"
  289 + x-transition:enter-start="opacity-0"
  290 + x-transition:enter-end="opacity-100"
  291 + x-transition:leave="transition ease-in-out duration-150"
  292 + x-transition:leave-start="opacity-100"
  293 + x-transition:leave-end="opacity-0"
  294 + class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center"
  295 + ></div>
  296 + <aside
  297 + class="fixed inset-y-0 z-20 flex-shrink-0 w-64 mt-16 overflow-y-auto bg-white dark:bg-gray-800 md:hidden"
  298 + x-show="isSideMenuOpen"
  299 + x-transition:enter="transition ease-in-out duration-150"
  300 + x-transition:enter-start="opacity-0 transform -translate-x-20"
  301 + x-transition:enter-end="opacity-100"
  302 + x-transition:leave="transition ease-in-out duration-150"
  303 + x-transition:leave-start="opacity-100"
  304 + x-transition:leave-end="opacity-0 transform -translate-x-20"
  305 + @click.away="closeSideMenu"
  306 + @keydown.escape="closeSideMenu"
  307 + >
  308 + <div class="py-4 text-gray-500 dark:text-gray-400">
  309 + <a
  310 + class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
  311 + href="#"
  312 + >
  313 + Windmill
  314 + </a>
  315 + <ul class="mt-6">
  316 + <li class="relative px-6 py-3">
  317 + <a
  318 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  319 + href="index.html"
  320 + >
  321 + <svg
  322 + class="w-5 h-5"
  323 + aria-hidden="true"
  324 + fill="none"
  325 + stroke-linecap="round"
  326 + stroke-linejoin="round"
  327 + stroke-width="2"
  328 + viewBox="0 0 24 24"
  329 + stroke="currentColor"
  330 + >
  331 + <path
  332 + d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"
  333 + ></path>
  334 + </svg>
  335 + <span class="ml-4">Dashboard</span>
  336 + </a>
  337 + </li>
  338 + </ul>
  339 + <ul>
  340 + <li class="relative px-6 py-3">
  341 + <a
  342 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  343 + href="forms.html"
  344 + >
  345 + <svg
  346 + class="w-5 h-5"
  347 + aria-hidden="true"
  348 + fill="none"
  349 + stroke-linecap="round"
  350 + stroke-linejoin="round"
  351 + stroke-width="2"
  352 + viewBox="0 0 24 24"
  353 + stroke="currentColor"
  354 + >
  355 + <path
  356 + d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
  357 + ></path>
  358 + </svg>
  359 + <span class="ml-4">Forms</span>
  360 + </a>
  361 + </li>
  362 + <li class="relative px-6 py-3">
  363 + <span
  364 + class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
  365 + aria-hidden="true"
  366 + ></span>
  367 + <a
  368 + class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100"
  369 + href="cards.html"
  370 + >
  371 + <svg
  372 + class="w-5 h-5"
  373 + aria-hidden="true"
  374 + fill="none"
  375 + stroke-linecap="round"
  376 + stroke-linejoin="round"
  377 + stroke-width="2"
  378 + viewBox="0 0 24 24"
  379 + stroke="currentColor"
  380 + >
  381 + <path
  382 + d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"
  383 + ></path>
  384 + </svg>
  385 + <span class="ml-4">Cards</span>
  386 + </a>
  387 + </li>
  388 + <li class="relative px-6 py-3">
  389 + <a
  390 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  391 + href="charts.html"
  392 + >
  393 + <svg
  394 + class="w-5 h-5"
  395 + aria-hidden="true"
  396 + fill="none"
  397 + stroke-linecap="round"
  398 + stroke-linejoin="round"
  399 + stroke-width="2"
  400 + viewBox="0 0 24 24"
  401 + stroke="currentColor"
  402 + >
  403 + <path
  404 + d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
  405 + ></path>
  406 + <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
  407 + </svg>
  408 + <span class="ml-4">Charts</span>
  409 + </a>
  410 + </li>
  411 + <li class="relative px-6 py-3">
  412 + <a
  413 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  414 + href="buttons.html"
  415 + >
  416 + <svg
  417 + class="w-5 h-5"
  418 + aria-hidden="true"
  419 + fill="none"
  420 + stroke-linecap="round"
  421 + stroke-linejoin="round"
  422 + stroke-width="2"
  423 + viewBox="0 0 24 24"
  424 + stroke="currentColor"
  425 + >
  426 + <path
  427 + d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"
  428 + ></path>
  429 + </svg>
  430 + <span class="ml-4">Buttons</span>
  431 + </a>
  432 + </li>
  433 + <li class="relative px-6 py-3">
  434 + <a
  435 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  436 + href="modals.html"
  437 + >
  438 + <svg
  439 + class="w-5 h-5"
  440 + aria-hidden="true"
  441 + fill="none"
  442 + stroke-linecap="round"
  443 + stroke-linejoin="round"
  444 + stroke-width="2"
  445 + viewBox="0 0 24 24"
  446 + stroke="currentColor"
  447 + >
  448 + <path
  449 + d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"
  450 + ></path>
  451 + </svg>
  452 + <span class="ml-4">Modals</span>
  453 + </a>
  454 + </li>
  455 + <li class="relative px-6 py-3">
  456 + <a
  457 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  458 + href="tables.html"
  459 + >
  460 + <svg
  461 + class="w-5 h-5"
  462 + aria-hidden="true"
  463 + fill="none"
  464 + stroke-linecap="round"
  465 + stroke-linejoin="round"
  466 + stroke-width="2"
  467 + viewBox="0 0 24 24"
  468 + stroke="currentColor"
  469 + >
  470 + <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
  471 + </svg>
  472 + <span class="ml-4">Tables</span>
  473 + </a>
  474 + </li>
  475 + <li class="relative px-6 py-3">
  476 + <button
  477 + class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  478 + @click="togglePagesMenu"
  479 + aria-haspopup="true"
  480 + >
  481 + <span class="inline-flex items-center">
  482 + <svg
  483 + class="w-5 h-5"
  484 + aria-hidden="true"
  485 + fill="none"
  486 + stroke-linecap="round"
  487 + stroke-linejoin="round"
  488 + stroke-width="2"
  489 + viewBox="0 0 24 24"
  490 + stroke="currentColor"
  491 + >
  492 + <path
  493 + d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"
  494 + ></path>
  495 + </svg>
  496 + <span class="ml-4">Pages</span>
  497 + </span>
  498 + <svg
  499 + class="w-4 h-4"
  500 + aria-hidden="true"
  501 + fill="currentColor"
  502 + viewBox="0 0 20 20"
  503 + >
  504 + <path
  505 + fill-rule="evenodd"
  506 + d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
  507 + clip-rule="evenodd"
  508 + ></path>
  509 + </svg>
  510 + </button>
  511 + <template x-if="isPagesMenuOpen">
  512 + <ul
  513 + x-transition:enter="transition-all ease-in-out duration-300"
  514 + x-transition:enter-start="opacity-25 max-h-0"
  515 + x-transition:enter-end="opacity-100 max-h-xl"
  516 + x-transition:leave="transition-all ease-in-out duration-300"
  517 + x-transition:leave-start="opacity-100 max-h-xl"
  518 + x-transition:leave-end="opacity-0 max-h-0"
  519 + class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900"
  520 + aria-label="submenu"
  521 + >
  522 + <li
  523 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  524 + >
  525 + <a class="w-full" href="pages/login.html">Login</a>
  526 + </li>
  527 + <li
  528 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  529 + >
  530 + <a class="w-full" href="pages/create-account.html">
  531 + Create account
  532 + </a>
  533 + </li>
  534 + <li
  535 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  536 + >
  537 + <a class="w-full" href="pages/forgot-password.html">
  538 + Forgot password
  539 + </a>
  540 + </li>
  541 + <li
  542 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  543 + >
  544 + <a class="w-full" href="pages/404.html">404</a>
  545 + </li>
  546 + <li
  547 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  548 + >
  549 + <a class="w-full" href="pages/blank.html">Blank</a>
  550 + </li>
  551 + </ul>
  552 + </template>
  553 + </li>
  554 + </ul>
  555 + <div class="px-6 my-6">
  556 + <button
  557 + class="flex items-center justify-between px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  558 + >
  559 + Create account
  560 + <span class="ml-2" aria-hidden="true">+</span>
  561 + </button>
  562 + </div>
  563 + </div>
  564 + </aside>
  565 + <div class="flex flex-col flex-1">
  566 + <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800">
  567 + <div
  568 + class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300"
  569 + >
  570 + <!-- Mobile hamburger -->
  571 + <button
  572 + class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple"
  573 + @click="toggleSideMenu"
  574 + aria-label="Menu"
  575 + >
  576 + <svg
  577 + class="w-6 h-6"
  578 + aria-hidden="true"
  579 + fill="currentColor"
  580 + viewBox="0 0 20 20"
  581 + >
  582 + <path
  583 + fill-rule="evenodd"
  584 + d="M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z"
  585 + clip-rule="evenodd"
  586 + ></path>
  587 + </svg>
  588 + </button>
  589 + <!-- Search input -->
  590 + <div class="flex justify-center flex-1 lg:mr-32">
  591 + <div
  592 + class="relative w-full max-w-xl mr-6 focus-within:text-purple-500"
  593 + >
  594 + <div class="absolute inset-y-0 flex items-center pl-2">
  595 + <svg
  596 + class="w-4 h-4"
  597 + aria-hidden="true"
  598 + fill="currentColor"
  599 + viewBox="0 0 20 20"
  600 + >
  601 + <path
  602 + fill-rule="evenodd"
  603 + d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z"
  604 + clip-rule="evenodd"
  605 + ></path>
  606 + </svg>
  607 + </div>
  608 + <input
  609 + class="w-full pl-8 pr-2 text-sm text-gray-700 placeholder-gray-600 bg-gray-100 border-0 rounded-md dark:placeholder-gray-500 dark:focus:shadow-outline-gray dark:focus:placeholder-gray-600 dark:bg-gray-700 dark:text-gray-200 focus:placeholder-gray-500 focus:bg-white focus:border-purple-300 focus:outline-none focus:shadow-outline-purple form-input"
  610 + type="text"
  611 + placeholder="Search for projects"
  612 + aria-label="Search"
  613 + />
  614 + </div>
  615 + </div>
  616 + <ul class="flex items-center flex-shrink-0 space-x-6">
  617 + <!-- Theme toggler -->
  618 + <li class="flex">
  619 + <button
  620 + class="rounded-md focus:outline-none focus:shadow-outline-purple"
  621 + @click="toggleTheme"
  622 + aria-label="Toggle color mode"
  623 + >
  624 + <template x-if="!dark">
  625 + <svg
  626 + class="w-5 h-5"
  627 + aria-hidden="true"
  628 + fill="currentColor"
  629 + viewBox="0 0 20 20"
  630 + >
  631 + <path
  632 + d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"
  633 + ></path>
  634 + </svg>
  635 + </template>
  636 + <template x-if="dark">
  637 + <svg
  638 + class="w-5 h-5"
  639 + aria-hidden="true"
  640 + fill="currentColor"
  641 + viewBox="0 0 20 20"
  642 + >
  643 + <path
  644 + fill-rule="evenodd"
  645 + d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z"
  646 + clip-rule="evenodd"
  647 + ></path>
  648 + </svg>
  649 + </template>
  650 + </button>
  651 + </li>
  652 + <!-- Notifications menu -->
  653 + <li class="relative">
  654 + <button
  655 + class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple"
  656 + @click="toggleNotificationsMenu"
  657 + @keydown.escape="closeNotificationsMenu"
  658 + aria-label="Notifications"
  659 + aria-haspopup="true"
  660 + >
  661 + <svg
  662 + class="w-5 h-5"
  663 + aria-hidden="true"
  664 + fill="currentColor"
  665 + viewBox="0 0 20 20"
  666 + >
  667 + <path
  668 + d="M10 2a6 6 0 00-6 6v3.586l-.707.707A1 1 0 004 14h12a1 1 0 00.707-1.707L16 11.586V8a6 6 0 00-6-6zM10 18a3 3 0 01-3-3h6a3 3 0 01-3 3z"
  669 + ></path>
  670 + </svg>
  671 + <!-- Notification badge -->
  672 + <span
  673 + aria-hidden="true"
  674 + class="absolute top-0 right-0 inline-block w-3 h-3 transform translate-x-1 -translate-y-1 bg-red-600 border-2 border-white rounded-full dark:border-gray-800"
  675 + ></span>
  676 + </button>
  677 + <template x-if="isNotificationsMenuOpen">
  678 + <ul
  679 + x-transition:leave="transition ease-in duration-150"
  680 + x-transition:leave-start="opacity-100"
  681 + x-transition:leave-end="opacity-0"
  682 + @click.away="closeNotificationsMenu"
  683 + @keydown.escape="closeNotificationsMenu"
  684 + class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:text-gray-300 dark:border-gray-700 dark:bg-gray-700"
  685 + aria-label="submenu"
  686 + >
  687 + <li class="flex">
  688 + <a
  689 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  690 + href="#"
  691 + >
  692 + <span>Messages</span>
  693 + <span
  694 + class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600"
  695 + >
  696 + 13
  697 + </span>
  698 + </a>
  699 + </li>
  700 + <li class="flex">
  701 + <a
  702 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  703 + href="#"
  704 + >
  705 + <span>Sales</span>
  706 + <span
  707 + class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600"
  708 + >
  709 + 2
  710 + </span>
  711 + </a>
  712 + </li>
  713 + <li class="flex">
  714 + <a
  715 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  716 + href="#"
  717 + >
  718 + <span>Alerts</span>
  719 + </a>
  720 + </li>
  721 + </ul>
  722 + </template>
  723 + </li>
  724 + <!-- Profile menu -->
  725 + <li class="relative">
  726 + <button
  727 + class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none"
  728 + @click="toggleProfileMenu"
  729 + @keydown.escape="closeProfileMenu"
  730 + aria-label="Account"
  731 + aria-haspopup="true"
  732 + >
  733 + <img
  734 + class="object-cover w-8 h-8 rounded-full"
  735 + src="https://images.unsplash.com/photo-1502378735452-bc7d86632805?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&s=aa3a807e1bbdfd4364d1f449eaa96d82"
  736 + alt=""
  737 + aria-hidden="true"
  738 + />
  739 + </button>
  740 + <template x-if="isProfileMenuOpen">
  741 + <ul
  742 + x-transition:leave="transition ease-in duration-150"
  743 + x-transition:leave-start="opacity-100"
  744 + x-transition:leave-end="opacity-0"
  745 + @click.away="closeProfileMenu"
  746 + @keydown.escape="closeProfileMenu"
  747 + class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:border-gray-700 dark:text-gray-300 dark:bg-gray-700"
  748 + aria-label="submenu"
  749 + >
  750 + <li class="flex">
  751 + <a
  752 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  753 + href="#"
  754 + >
  755 + <svg
  756 + class="w-4 h-4 mr-3"
  757 + aria-hidden="true"
  758 + fill="none"
  759 + stroke-linecap="round"
  760 + stroke-linejoin="round"
  761 + stroke-width="2"
  762 + viewBox="0 0 24 24"
  763 + stroke="currentColor"
  764 + >
  765 + <path
  766 + d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"
  767 + ></path>
  768 + </svg>
  769 + <span>Profile</span>
  770 + </a>
  771 + </li>
  772 + <li class="flex">
  773 + <a
  774 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  775 + href="#"
  776 + >
  777 + <svg
  778 + class="w-4 h-4 mr-3"
  779 + aria-hidden="true"
  780 + fill="none"
  781 + stroke-linecap="round"
  782 + stroke-linejoin="round"
  783 + stroke-width="2"
  784 + viewBox="0 0 24 24"
  785 + stroke="currentColor"
  786 + >
  787 + <path
  788 + d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"
  789 + ></path>
  790 + <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
  791 + </svg>
  792 + <span>Settings</span>
  793 + </a>
  794 + </li>
  795 + <li class="flex">
  796 + <a
  797 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  798 + href="#"
  799 + >
  800 + <svg
  801 + class="w-4 h-4 mr-3"
  802 + aria-hidden="true"
  803 + fill="none"
  804 + stroke-linecap="round"
  805 + stroke-linejoin="round"
  806 + stroke-width="2"
  807 + viewBox="0 0 24 24"
  808 + stroke="currentColor"
  809 + >
  810 + <path
  811 + d="M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1"
  812 + ></path>
  813 + </svg>
  814 + <span>Log out</span>
  815 + </a>
  816 + </li>
  817 + </ul>
  818 + </template>
  819 + </li>
  820 + </ul>
  821 + </div>
  822 + </header>
  823 + <main class="h-full pb-16 overflow-y-auto">
  824 + <div class="container px-6 mx-auto grid">
  825 + <h2
  826 + class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"
  827 + >
  828 + Cards
  829 + </h2>
  830 + <!-- CTA -->
  831 + <a
  832 + class="flex items-center justify-between p-4 mb-8 text-sm font-semibold text-purple-100 bg-purple-600 rounded-lg shadow-md focus:outline-none focus:shadow-outline-purple"
  833 + href="https://github.com/estevanmaito/windmill-dashboard"
  834 + >
  835 + <div class="flex items-center">
  836 + <svg
  837 + class="w-5 h-5 mr-2"
  838 + fill="currentColor"
  839 + viewBox="0 0 20 20"
  840 + >
  841 + <path
  842 + d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"
  843 + ></path>
  844 + </svg>
  845 + <span>Star this project on GitHub</span>
  846 + </div>
  847 + <span>View more &RightArrow;</span>
  848 + </a>
  849 +
  850 + <!-- Big section cards -->
  851 + <h4
  852 + class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
  853 + >
  854 + Big section cards
  855 + </h4>
  856 + <div
  857 + class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"
  858 + >
  859 + <p class="text-sm text-gray-600 dark:text-gray-400">
  860 + Large, full width sections goes here
  861 + </p>
  862 + </div>
  863 +
  864 + <!-- Responsive cards -->
  865 + <h4
  866 + class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
  867 + >
  868 + Responsive cards
  869 + </h4>
  870 + <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4">
  871 + <!-- Card -->
  872 + <div
  873 + class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
  874 + >
  875 + <div
  876 + class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500"
  877 + >
  878 + <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
  879 + <path
  880 + d="M13 6a3 3 0 11-6 0 3 3 0 016 0zM18 8a2 2 0 11-4 0 2 2 0 014 0zM14 15a4 4 0 00-8 0v3h8v-3zM6 8a2 2 0 11-4 0 2 2 0 014 0zM16 18v-3a5.972 5.972 0 00-.75-2.906A3.005 3.005 0 0119 15v3h-3zM4.75 12.094A5.973 5.973 0 004 15v3H1v-3a3 3 0 013.75-2.906z"
  881 + ></path>
  882 + </svg>
  883 + </div>
  884 + <div>
  885 + <p
  886 + class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
  887 + >
  888 + Total clients
  889 + </p>
  890 + <p
  891 + class="text-lg font-semibold text-gray-700 dark:text-gray-200"
  892 + >
  893 + 6389
  894 + </p>
  895 + </div>
  896 + </div>
  897 + <!-- Card -->
  898 + <div
  899 + class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
  900 + >
  901 + <div
  902 + class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500"
  903 + >
  904 + <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
  905 + <path
  906 + fill-rule="evenodd"
  907 + d="M4 4a2 2 0 00-2 2v4a2 2 0 002 2V6h10a2 2 0 00-2-2H4zm2 6a2 2 0 012-2h8a2 2 0 012 2v4a2 2 0 01-2 2H8a2 2 0 01-2-2v-4zm6 4a2 2 0 100-4 2 2 0 000 4z"
  908 + clip-rule="evenodd"
  909 + ></path>
  910 + </svg>
  911 + </div>
  912 + <div>
  913 + <p
  914 + class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
  915 + >
  916 + Account balance
  917 + </p>
  918 + <p
  919 + class="text-lg font-semibold text-gray-700 dark:text-gray-200"
  920 + >
  921 + $ 46,760.89
  922 + </p>
  923 + </div>
  924 + </div>
  925 + <!-- Card -->
  926 + <div
  927 + class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
  928 + >
  929 + <div
  930 + class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500"
  931 + >
  932 + <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
  933 + <path
  934 + d="M3 1a1 1 0 000 2h1.22l.305 1.222a.997.997 0 00.01.042l1.358 5.43-.893.892C3.74 11.846 4.632 14 6.414 14H15a1 1 0 000-2H6.414l1-1H14a1 1 0 00.894-.553l3-6A1 1 0 0017 3H6.28l-.31-1.243A1 1 0 005 1H3zM16 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM6.5 18a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"
  935 + ></path>
  936 + </svg>
  937 + </div>
  938 + <div>
  939 + <p
  940 + class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
  941 + >
  942 + New sales
  943 + </p>
  944 + <p
  945 + class="text-lg font-semibold text-gray-700 dark:text-gray-200"
  946 + >
  947 + 376
  948 + </p>
  949 + </div>
  950 + </div>
  951 + <!-- Card -->
  952 + <div
  953 + class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
  954 + >
  955 + <div
  956 + class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500"
  957 + >
  958 + <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
  959 + <path
  960 + fill-rule="evenodd"
  961 + d="M18 5v8a2 2 0 01-2 2h-5l-5 4v-4H4a2 2 0 01-2-2V5a2 2 0 012-2h12a2 2 0 012 2zM7 8H5v2h2V8zm2 0h2v2H9V8zm6 0h-2v2h2V8z"
  962 + clip-rule="evenodd"
  963 + ></path>
  964 + </svg>
  965 + </div>
  966 + <div>
  967 + <p
  968 + class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
  969 + >
  970 + Pending contacts
  971 + </p>
  972 + <p
  973 + class="text-lg font-semibold text-gray-700 dark:text-gray-200"
  974 + >
  975 + 35
  976 + </p>
  977 + </div>
  978 + </div>
  979 + </div>
  980 +
  981 + <!-- Cards with title -->
  982 + <h4
  983 + class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
  984 + >
  985 + Cards with title
  986 + </h4>
  987 + <div class="grid gap-6 mb-8 md:grid-cols-2">
  988 + <div
  989 + class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
  990 + >
  991 + <h4 class="mb-4 font-semibold text-gray-600 dark:text-gray-300">
  992 + Revenue
  993 + </h4>
  994 + <p class="text-gray-600 dark:text-gray-400">
  995 + Lorem ipsum dolor sit, amet consectetur adipisicing elit.
  996 + Fuga, cum commodi a omnis numquam quod? Totam exercitationem
  997 + quos hic ipsam at qui cum numquam, sed amet ratione! Ratione,
  998 + nihil dolorum.
  999 + </p>
  1000 + </div>
  1001 + <div
  1002 + class="min-w-0 p-4 text-white bg-purple-600 rounded-lg shadow-xs"
  1003 + >
  1004 + <h4 class="mb-4 font-semibold">
  1005 + Colored card
  1006 + </h4>
  1007 + <p>
  1008 + Lorem ipsum dolor sit, amet consectetur adipisicing elit.
  1009 + Fuga, cum commodi a omnis numquam quod? Totam exercitationem
  1010 + quos hic ipsam at qui cum numquam, sed amet ratione! Ratione,
  1011 + nihil dolorum.
  1012 + </p>
  1013 + </div>
  1014 + </div>
  1015 + </div>
  1016 + </main>
  1017 + </div>
  1018 + </div>
  1019 + </body>
  1020 +</html>
html/public/charts.html
... ... @@ -0,0 +1,965 @@
  1 +<!DOCTYPE html>
  2 +<html :class="{ 'theme-dark': dark }" x-data="data()" lang="en">
  3 + <head>
  4 + <meta charset="UTF-8" />
  5 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6 + <title>Charts - Windmill Dashboard</title>
  7 + <link
  8 + href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"
  9 + rel="stylesheet"
  10 + />
  11 + <link rel="stylesheet" href="./assets/css/tailwind.output.css" />
  12 + <script
  13 + src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js"
  14 + defer
  15 + ></script>
  16 + <script src="./assets/js/init-alpine.js"></script>
  17 + <link
  18 + rel="stylesheet"
  19 + href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css"
  20 + />
  21 + <script
  22 + src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"
  23 + defer
  24 + ></script>
  25 + <script src="./assets/js/charts-lines.js" defer></script>
  26 + <script src="./assets/js/charts-pie.js" defer></script>
  27 + <script src="./assets/js/charts-bars.js" defer></script>
  28 + </head>
  29 + <body>
  30 + <div
  31 + class="flex h-screen bg-gray-50 dark:bg-gray-900"
  32 + :class="{ 'overflow-hidden': isSideMenuOpen}"
  33 + >
  34 + <!-- Desktop sidebar -->
  35 + <aside
  36 + class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0"
  37 + >
  38 + <div class="py-4 text-gray-500 dark:text-gray-400">
  39 + <a
  40 + class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
  41 + href="#"
  42 + >
  43 + Windmill
  44 + </a>
  45 + <ul class="mt-6">
  46 + <li class="relative px-6 py-3">
  47 + <a
  48 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  49 + href="index.html"
  50 + >
  51 + <svg
  52 + class="w-5 h-5"
  53 + aria-hidden="true"
  54 + fill="none"
  55 + stroke-linecap="round"
  56 + stroke-linejoin="round"
  57 + stroke-width="2"
  58 + viewBox="0 0 24 24"
  59 + stroke="currentColor"
  60 + >
  61 + <path
  62 + d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"
  63 + ></path>
  64 + </svg>
  65 + <span class="ml-4">Dashboard</span>
  66 + </a>
  67 + </li>
  68 + </ul>
  69 + <ul>
  70 + <li class="relative px-6 py-3">
  71 + <a
  72 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  73 + href="forms.html"
  74 + >
  75 + <svg
  76 + class="w-5 h-5"
  77 + aria-hidden="true"
  78 + fill="none"
  79 + stroke-linecap="round"
  80 + stroke-linejoin="round"
  81 + stroke-width="2"
  82 + viewBox="0 0 24 24"
  83 + stroke="currentColor"
  84 + >
  85 + <path
  86 + d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
  87 + ></path>
  88 + </svg>
  89 + <span class="ml-4">Forms</span>
  90 + </a>
  91 + </li>
  92 + <li class="relative px-6 py-3">
  93 + <a
  94 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  95 + href="cards.html"
  96 + >
  97 + <svg
  98 + class="w-5 h-5"
  99 + aria-hidden="true"
  100 + fill="none"
  101 + stroke-linecap="round"
  102 + stroke-linejoin="round"
  103 + stroke-width="2"
  104 + viewBox="0 0 24 24"
  105 + stroke="currentColor"
  106 + >
  107 + <path
  108 + d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"
  109 + ></path>
  110 + </svg>
  111 + <span class="ml-4">Cards</span>
  112 + </a>
  113 + </li>
  114 + <li class="relative px-6 py-3">
  115 + <span
  116 + class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
  117 + aria-hidden="true"
  118 + ></span>
  119 + <a
  120 + class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100"
  121 + href="charts.html"
  122 + >
  123 + <svg
  124 + class="w-5 h-5"
  125 + aria-hidden="true"
  126 + fill="none"
  127 + stroke-linecap="round"
  128 + stroke-linejoin="round"
  129 + stroke-width="2"
  130 + viewBox="0 0 24 24"
  131 + stroke="currentColor"
  132 + >
  133 + <path
  134 + d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
  135 + ></path>
  136 + <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
  137 + </svg>
  138 + <span class="ml-4">Charts</span>
  139 + </a>
  140 + </li>
  141 + <li class="relative px-6 py-3">
  142 + <a
  143 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  144 + href="buttons.html"
  145 + >
  146 + <svg
  147 + class="w-5 h-5"
  148 + aria-hidden="true"
  149 + fill="none"
  150 + stroke-linecap="round"
  151 + stroke-linejoin="round"
  152 + stroke-width="2"
  153 + viewBox="0 0 24 24"
  154 + stroke="currentColor"
  155 + >
  156 + <path
  157 + d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"
  158 + ></path>
  159 + </svg>
  160 + <span class="ml-4">Buttons</span>
  161 + </a>
  162 + </li>
  163 + <li class="relative px-6 py-3">
  164 + <a
  165 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  166 + href="modals.html"
  167 + >
  168 + <svg
  169 + class="w-5 h-5"
  170 + aria-hidden="true"
  171 + fill="none"
  172 + stroke-linecap="round"
  173 + stroke-linejoin="round"
  174 + stroke-width="2"
  175 + viewBox="0 0 24 24"
  176 + stroke="currentColor"
  177 + >
  178 + <path
  179 + d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"
  180 + ></path>
  181 + </svg>
  182 + <span class="ml-4">Modals</span>
  183 + </a>
  184 + </li>
  185 + <li class="relative px-6 py-3">
  186 + <a
  187 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  188 + href="tables.html"
  189 + >
  190 + <svg
  191 + class="w-5 h-5"
  192 + aria-hidden="true"
  193 + fill="none"
  194 + stroke-linecap="round"
  195 + stroke-linejoin="round"
  196 + stroke-width="2"
  197 + viewBox="0 0 24 24"
  198 + stroke="currentColor"
  199 + >
  200 + <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
  201 + </svg>
  202 + <span class="ml-4">Tables</span>
  203 + </a>
  204 + </li>
  205 + <li class="relative px-6 py-3">
  206 + <button
  207 + class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  208 + @click="togglePagesMenu"
  209 + aria-haspopup="true"
  210 + >
  211 + <span class="inline-flex items-center">
  212 + <svg
  213 + class="w-5 h-5"
  214 + aria-hidden="true"
  215 + fill="none"
  216 + stroke-linecap="round"
  217 + stroke-linejoin="round"
  218 + stroke-width="2"
  219 + viewBox="0 0 24 24"
  220 + stroke="currentColor"
  221 + >
  222 + <path
  223 + d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"
  224 + ></path>
  225 + </svg>
  226 + <span class="ml-4">Pages</span>
  227 + </span>
  228 + <svg
  229 + class="w-4 h-4"
  230 + aria-hidden="true"
  231 + fill="currentColor"
  232 + viewBox="0 0 20 20"
  233 + >
  234 + <path
  235 + fill-rule="evenodd"
  236 + d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
  237 + clip-rule="evenodd"
  238 + ></path>
  239 + </svg>
  240 + </button>
  241 + <template x-if="isPagesMenuOpen">
  242 + <ul
  243 + x-transition:enter="transition-all ease-in-out duration-300"
  244 + x-transition:enter-start="opacity-25 max-h-0"
  245 + x-transition:enter-end="opacity-100 max-h-xl"
  246 + x-transition:leave="transition-all ease-in-out duration-300"
  247 + x-transition:leave-start="opacity-100 max-h-xl"
  248 + x-transition:leave-end="opacity-0 max-h-0"
  249 + class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900"
  250 + aria-label="submenu"
  251 + >
  252 + <li
  253 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  254 + >
  255 + <a class="w-full" href="pages/login.html">Login</a>
  256 + </li>
  257 + <li
  258 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  259 + >
  260 + <a class="w-full" href="pages/create-account.html">
  261 + Create account
  262 + </a>
  263 + </li>
  264 + <li
  265 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  266 + >
  267 + <a class="w-full" href="pages/forgot-password.html">
  268 + Forgot password
  269 + </a>
  270 + </li>
  271 + <li
  272 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  273 + >
  274 + <a class="w-full" href="pages/404.html">404</a>
  275 + </li>
  276 + <li
  277 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  278 + >
  279 + <a class="w-full" href="pages/blank.html">Blank</a>
  280 + </li>
  281 + </ul>
  282 + </template>
  283 + </li>
  284 + </ul>
  285 + <div class="px-6 my-6">
  286 + <button
  287 + class="flex items-center justify-between w-full px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  288 + >
  289 + Create account
  290 + <span class="ml-2" aria-hidden="true">+</span>
  291 + </button>
  292 + </div>
  293 + </div>
  294 + </aside>
  295 + <!-- Mobile sidebar -->
  296 + <!-- Backdrop -->
  297 + <div
  298 + x-show="isSideMenuOpen"
  299 + x-transition:enter="transition ease-in-out duration-150"
  300 + x-transition:enter-start="opacity-0"
  301 + x-transition:enter-end="opacity-100"
  302 + x-transition:leave="transition ease-in-out duration-150"
  303 + x-transition:leave-start="opacity-100"
  304 + x-transition:leave-end="opacity-0"
  305 + class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center"
  306 + ></div>
  307 + <aside
  308 + class="fixed inset-y-0 z-20 flex-shrink-0 w-64 mt-16 overflow-y-auto bg-white dark:bg-gray-800 md:hidden"
  309 + x-show="isSideMenuOpen"
  310 + x-transition:enter="transition ease-in-out duration-150"
  311 + x-transition:enter-start="opacity-0 transform -translate-x-20"
  312 + x-transition:enter-end="opacity-100"
  313 + x-transition:leave="transition ease-in-out duration-150"
  314 + x-transition:leave-start="opacity-100"
  315 + x-transition:leave-end="opacity-0 transform -translate-x-20"
  316 + @click.away="closeSideMenu"
  317 + @keydown.escape="closeSideMenu"
  318 + >
  319 + <div class="py-4 text-gray-500 dark:text-gray-400">
  320 + <a
  321 + class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
  322 + href="#"
  323 + >
  324 + Windmill
  325 + </a>
  326 + <ul class="mt-6">
  327 + <li class="relative px-6 py-3">
  328 + <a
  329 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  330 + href="index.html"
  331 + >
  332 + <svg
  333 + class="w-5 h-5"
  334 + aria-hidden="true"
  335 + fill="none"
  336 + stroke-linecap="round"
  337 + stroke-linejoin="round"
  338 + stroke-width="2"
  339 + viewBox="0 0 24 24"
  340 + stroke="currentColor"
  341 + >
  342 + <path
  343 + d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"
  344 + ></path>
  345 + </svg>
  346 + <span class="ml-4">Dashboard</span>
  347 + </a>
  348 + </li>
  349 + </ul>
  350 + <ul>
  351 + <li class="relative px-6 py-3">
  352 + <a
  353 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  354 + href="forms.html"
  355 + >
  356 + <svg
  357 + class="w-5 h-5"
  358 + aria-hidden="true"
  359 + fill="none"
  360 + stroke-linecap="round"
  361 + stroke-linejoin="round"
  362 + stroke-width="2"
  363 + viewBox="0 0 24 24"
  364 + stroke="currentColor"
  365 + >
  366 + <path
  367 + d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
  368 + ></path>
  369 + </svg>
  370 + <span class="ml-4">Forms</span>
  371 + </a>
  372 + </li>
  373 + <li class="relative px-6 py-3">
  374 + <a
  375 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  376 + href="cards.html"
  377 + >
  378 + <svg
  379 + class="w-5 h-5"
  380 + aria-hidden="true"
  381 + fill="none"
  382 + stroke-linecap="round"
  383 + stroke-linejoin="round"
  384 + stroke-width="2"
  385 + viewBox="0 0 24 24"
  386 + stroke="currentColor"
  387 + >
  388 + <path
  389 + d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"
  390 + ></path>
  391 + </svg>
  392 + <span class="ml-4">Cards</span>
  393 + </a>
  394 + </li>
  395 + <li class="relative px-6 py-3">
  396 + <span
  397 + class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
  398 + aria-hidden="true"
  399 + ></span>
  400 + <a
  401 + class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100"
  402 + href="charts.html"
  403 + >
  404 + <svg
  405 + class="w-5 h-5"
  406 + aria-hidden="true"
  407 + fill="none"
  408 + stroke-linecap="round"
  409 + stroke-linejoin="round"
  410 + stroke-width="2"
  411 + viewBox="0 0 24 24"
  412 + stroke="currentColor"
  413 + >
  414 + <path
  415 + d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
  416 + ></path>
  417 + <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
  418 + </svg>
  419 + <span class="ml-4">Charts</span>
  420 + </a>
  421 + </li>
  422 + <li class="relative px-6 py-3">
  423 + <a
  424 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  425 + href="buttons.html"
  426 + >
  427 + <svg
  428 + class="w-5 h-5"
  429 + aria-hidden="true"
  430 + fill="none"
  431 + stroke-linecap="round"
  432 + stroke-linejoin="round"
  433 + stroke-width="2"
  434 + viewBox="0 0 24 24"
  435 + stroke="currentColor"
  436 + >
  437 + <path
  438 + d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"
  439 + ></path>
  440 + </svg>
  441 + <span class="ml-4">Buttons</span>
  442 + </a>
  443 + </li>
  444 + <li class="relative px-6 py-3">
  445 + <a
  446 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  447 + href="modals.html"
  448 + >
  449 + <svg
  450 + class="w-5 h-5"
  451 + aria-hidden="true"
  452 + fill="none"
  453 + stroke-linecap="round"
  454 + stroke-linejoin="round"
  455 + stroke-width="2"
  456 + viewBox="0 0 24 24"
  457 + stroke="currentColor"
  458 + >
  459 + <path
  460 + d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"
  461 + ></path>
  462 + </svg>
  463 + <span class="ml-4">Modals</span>
  464 + </a>
  465 + </li>
  466 + <li class="relative px-6 py-3">
  467 + <a
  468 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  469 + href="tables.html"
  470 + >
  471 + <svg
  472 + class="w-5 h-5"
  473 + aria-hidden="true"
  474 + fill="none"
  475 + stroke-linecap="round"
  476 + stroke-linejoin="round"
  477 + stroke-width="2"
  478 + viewBox="0 0 24 24"
  479 + stroke="currentColor"
  480 + >
  481 + <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
  482 + </svg>
  483 + <span class="ml-4">Tables</span>
  484 + </a>
  485 + </li>
  486 + <li class="relative px-6 py-3">
  487 + <button
  488 + class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  489 + @click="togglePagesMenu"
  490 + aria-haspopup="true"
  491 + >
  492 + <span class="inline-flex items-center">
  493 + <svg
  494 + class="w-5 h-5"
  495 + aria-hidden="true"
  496 + fill="none"
  497 + stroke-linecap="round"
  498 + stroke-linejoin="round"
  499 + stroke-width="2"
  500 + viewBox="0 0 24 24"
  501 + stroke="currentColor"
  502 + >
  503 + <path
  504 + d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"
  505 + ></path>
  506 + </svg>
  507 + <span class="ml-4">Pages</span>
  508 + </span>
  509 + <svg
  510 + class="w-4 h-4"
  511 + aria-hidden="true"
  512 + fill="currentColor"
  513 + viewBox="0 0 20 20"
  514 + >
  515 + <path
  516 + fill-rule="evenodd"
  517 + d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
  518 + clip-rule="evenodd"
  519 + ></path>
  520 + </svg>
  521 + </button>
  522 + <template x-if="isPagesMenuOpen">
  523 + <ul
  524 + x-transition:enter="transition-all ease-in-out duration-300"
  525 + x-transition:enter-start="opacity-25 max-h-0"
  526 + x-transition:enter-end="opacity-100 max-h-xl"
  527 + x-transition:leave="transition-all ease-in-out duration-300"
  528 + x-transition:leave-start="opacity-100 max-h-xl"
  529 + x-transition:leave-end="opacity-0 max-h-0"
  530 + class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900"
  531 + aria-label="submenu"
  532 + >
  533 + <li
  534 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  535 + >
  536 + <a class="w-full" href="pages/login.html">Login</a>
  537 + </li>
  538 + <li
  539 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  540 + >
  541 + <a class="w-full" href="pages/create-account.html">
  542 + Create account
  543 + </a>
  544 + </li>
  545 + <li
  546 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  547 + >
  548 + <a class="w-full" href="pages/forgot-password.html">
  549 + Forgot password
  550 + </a>
  551 + </li>
  552 + <li
  553 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  554 + >
  555 + <a class="w-full" href="pages/404.html">404</a>
  556 + </li>
  557 + <li
  558 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  559 + >
  560 + <a class="w-full" href="pages/blank.html">Blank</a>
  561 + </li>
  562 + </ul>
  563 + </template>
  564 + </li>
  565 + </ul>
  566 + <div class="px-6 my-6">
  567 + <button
  568 + class="flex items-center justify-between px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  569 + >
  570 + Create account
  571 + <span class="ml-2" aria-hidden="true">+</span>
  572 + </button>
  573 + </div>
  574 + </div>
  575 + </aside>
  576 + <div class="flex flex-col flex-1">
  577 + <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800">
  578 + <div
  579 + class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300"
  580 + >
  581 + <!-- Mobile hamburger -->
  582 + <button
  583 + class="p-1 -ml-1 mr-5 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple"
  584 + @click="toggleSideMenu"
  585 + aria-label="Menu"
  586 + >
  587 + <svg
  588 + class="w-6 h-6"
  589 + aria-hidden="true"
  590 + fill="currentColor"
  591 + viewBox="0 0 20 20"
  592 + >
  593 + <path
  594 + fill-rule="evenodd"
  595 + d="M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z"
  596 + clip-rule="evenodd"
  597 + ></path>
  598 + </svg>
  599 + </button>
  600 + <!-- Search input -->
  601 + <div class="flex justify-center flex-1 lg:mr-32">
  602 + <div
  603 + class="relative w-full max-w-xl mr-6 focus-within:text-purple-500"
  604 + >
  605 + <div class="absolute inset-y-0 flex items-center pl-2">
  606 + <svg
  607 + class="w-4 h-4"
  608 + aria-hidden="true"
  609 + fill="currentColor"
  610 + viewBox="0 0 20 20"
  611 + >
  612 + <path
  613 + fill-rule="evenodd"
  614 + d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z"
  615 + clip-rule="evenodd"
  616 + ></path>
  617 + </svg>
  618 + </div>
  619 + <input
  620 + class="w-full pl-8 pr-2 text-sm text-gray-700 placeholder-gray-600 bg-gray-100 border-0 rounded-md dark:placeholder-gray-500 dark:focus:shadow-outline-gray dark:focus:placeholder-gray-600 dark:bg-gray-700 dark:text-gray-200 focus:placeholder-gray-500 focus:bg-white focus:border-purple-300 focus:outline-none focus:shadow-outline-purple form-input"
  621 + type="text"
  622 + placeholder="Search for projects"
  623 + aria-label="Search"
  624 + />
  625 + </div>
  626 + </div>
  627 + <ul class="flex items-center flex-shrink-0 space-x-6">
  628 + <!-- Theme toggler -->
  629 + <li class="flex">
  630 + <button
  631 + class="rounded-md focus:outline-none focus:shadow-outline-purple"
  632 + @click="toggleTheme"
  633 + aria-label="Toggle color mode"
  634 + >
  635 + <template x-if="!dark">
  636 + <svg
  637 + class="w-5 h-5"
  638 + aria-hidden="true"
  639 + fill="currentColor"
  640 + viewBox="0 0 20 20"
  641 + >
  642 + <path
  643 + d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"
  644 + ></path>
  645 + </svg>
  646 + </template>
  647 + <template x-if="dark">
  648 + <svg
  649 + class="w-5 h-5"
  650 + aria-hidden="true"
  651 + fill="currentColor"
  652 + viewBox="0 0 20 20"
  653 + >
  654 + <path
  655 + fill-rule="evenodd"
  656 + d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z"
  657 + clip-rule="evenodd"
  658 + ></path>
  659 + </svg>
  660 + </template>
  661 + </button>
  662 + </li>
  663 + <!-- Notifications menu -->
  664 + <li class="relative">
  665 + <button
  666 + class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple"
  667 + @click="toggleNotificationsMenu"
  668 + @keydown.escape="closeNotificationsMenu"
  669 + aria-label="Notifications"
  670 + aria-haspopup="true"
  671 + >
  672 + <svg
  673 + class="w-5 h-5"
  674 + aria-hidden="true"
  675 + fill="currentColor"
  676 + viewBox="0 0 20 20"
  677 + >
  678 + <path
  679 + d="M10 2a6 6 0 00-6 6v3.586l-.707.707A1 1 0 004 14h12a1 1 0 00.707-1.707L16 11.586V8a6 6 0 00-6-6zM10 18a3 3 0 01-3-3h6a3 3 0 01-3 3z"
  680 + ></path>
  681 + </svg>
  682 + <!-- Notification badge -->
  683 + <span
  684 + aria-hidden="true"
  685 + class="absolute top-0 right-0 inline-block w-3 h-3 transform translate-x-1 -translate-y-1 bg-red-600 border-2 border-white rounded-full dark:border-gray-800"
  686 + ></span>
  687 + </button>
  688 + <template x-if="isNotificationsMenuOpen">
  689 + <ul
  690 + x-transition:leave="transition ease-in duration-150"
  691 + x-transition:leave-start="opacity-100"
  692 + x-transition:leave-end="opacity-0"
  693 + @click.away="closeNotificationsMenu"
  694 + @keydown.escape="closeNotificationsMenu"
  695 + class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:text-gray-300 dark:border-gray-700 dark:bg-gray-700"
  696 + aria-label="submenu"
  697 + >
  698 + <li class="flex">
  699 + <a
  700 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  701 + href="#"
  702 + >
  703 + <span>Messages</span>
  704 + <span
  705 + class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600"
  706 + >
  707 + 13
  708 + </span>
  709 + </a>
  710 + </li>
  711 + <li class="flex">
  712 + <a
  713 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  714 + href="#"
  715 + >
  716 + <span>Sales</span>
  717 + <span
  718 + class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600"
  719 + >
  720 + 2
  721 + </span>
  722 + </a>
  723 + </li>
  724 + <li class="flex">
  725 + <a
  726 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  727 + href="#"
  728 + >
  729 + <span>Alerts</span>
  730 + </a>
  731 + </li>
  732 + </ul>
  733 + </template>
  734 + </li>
  735 + <!-- Profile menu -->
  736 + <li class="relative">
  737 + <button
  738 + class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none"
  739 + @click="toggleProfileMenu"
  740 + @keydown.escape="closeProfileMenu"
  741 + aria-label="Account"
  742 + aria-haspopup="true"
  743 + >
  744 + <img
  745 + class="object-cover w-8 h-8 rounded-full"
  746 + src="https://images.unsplash.com/photo-1502378735452-bc7d86632805?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&s=aa3a807e1bbdfd4364d1f449eaa96d82"
  747 + alt=""
  748 + aria-hidden="true"
  749 + />
  750 + </button>
  751 + <template x-if="isProfileMenuOpen">
  752 + <ul
  753 + x-transition:leave="transition ease-in duration-150"
  754 + x-transition:leave-start="opacity-100"
  755 + x-transition:leave-end="opacity-0"
  756 + @click.away="closeProfileMenu"
  757 + @keydown.escape="closeProfileMenu"
  758 + class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:border-gray-700 dark:text-gray-300 dark:bg-gray-700"
  759 + aria-label="submenu"
  760 + >
  761 + <li class="flex">
  762 + <a
  763 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  764 + href="#"
  765 + >
  766 + <svg
  767 + class="w-4 h-4 mr-3"
  768 + aria-hidden="true"
  769 + fill="none"
  770 + stroke-linecap="round"
  771 + stroke-linejoin="round"
  772 + stroke-width="2"
  773 + viewBox="0 0 24 24"
  774 + stroke="currentColor"
  775 + >
  776 + <path
  777 + d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"
  778 + ></path>
  779 + </svg>
  780 + <span>Profile</span>
  781 + </a>
  782 + </li>
  783 + <li class="flex">
  784 + <a
  785 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  786 + href="#"
  787 + >
  788 + <svg
  789 + class="w-4 h-4 mr-3"
  790 + aria-hidden="true"
  791 + fill="none"
  792 + stroke-linecap="round"
  793 + stroke-linejoin="round"
  794 + stroke-width="2"
  795 + viewBox="0 0 24 24"
  796 + stroke="currentColor"
  797 + >
  798 + <path
  799 + d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"
  800 + ></path>
  801 + <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
  802 + </svg>
  803 + <span>Settings</span>
  804 + </a>
  805 + </li>
  806 + <li class="flex">
  807 + <a
  808 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  809 + href="#"
  810 + >
  811 + <svg
  812 + class="w-4 h-4 mr-3"
  813 + aria-hidden="true"
  814 + fill="none"
  815 + stroke-linecap="round"
  816 + stroke-linejoin="round"
  817 + stroke-width="2"
  818 + viewBox="0 0 24 24"
  819 + stroke="currentColor"
  820 + >
  821 + <path
  822 + d="M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1"
  823 + ></path>
  824 + </svg>
  825 + <span>Log out</span>
  826 + </a>
  827 + </li>
  828 + </ul>
  829 + </template>
  830 + </li>
  831 + </ul>
  832 + </div>
  833 + </header>
  834 + <main class="h-full pb-16 overflow-y-auto">
  835 + <div class="container px-6 mx-auto grid">
  836 + <h2
  837 + class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"
  838 + >
  839 + Charts
  840 + </h2>
  841 + <!-- CTA -->
  842 + <a
  843 + class="flex items-center justify-between p-4 mb-8 text-sm font-semibold text-purple-100 bg-purple-600 rounded-lg shadow-md focus:outline-none focus:shadow-outline-purple"
  844 + href="https://github.com/estevanmaito/windmill-dashboard"
  845 + >
  846 + <div class="flex items-center">
  847 + <svg
  848 + class="w-5 h-5 mr-2"
  849 + fill="currentColor"
  850 + viewBox="0 0 20 20"
  851 + >
  852 + <path
  853 + d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"
  854 + ></path>
  855 + </svg>
  856 + <span>Star this project on GitHub</span>
  857 + </div>
  858 + <span>View more &RightArrow;</span>
  859 + </a>
  860 +
  861 + <p class="mb-8 text-gray-600 dark:text-gray-400">
  862 + Charts are provided by
  863 + <a
  864 + class="text-purple-600 dark:text-purple-400 hover:underline"
  865 + href="https://www.chartjs.org/"
  866 + >
  867 + Chart.js
  868 + </a>
  869 + . Note that the default legends are disabled and you should
  870 + provide a description for your charts in HTML. See source code for
  871 + examples.
  872 + </p>
  873 +
  874 + <div class="grid gap-6 mb-8 md:grid-cols-2">
  875 + <!-- Doughnut/Pie chart -->
  876 + <div
  877 + class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
  878 + >
  879 + <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300">
  880 + Doughnut/Pie
  881 + </h4>
  882 + <canvas id="pie"></canvas>
  883 + <div
  884 + class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400"
  885 + >
  886 + <!-- Chart legend -->
  887 + <div class="flex items-center">
  888 + <span
  889 + class="inline-block w-3 h-3 mr-1 bg-blue-600 rounded-full"
  890 + ></span>
  891 + <span>Shirts</span>
  892 + </div>
  893 + <div class="flex items-center">
  894 + <span
  895 + class="inline-block w-3 h-3 mr-1 bg-teal-500 rounded-full"
  896 + ></span>
  897 + <span>Shoes</span>
  898 + </div>
  899 + <div class="flex items-center">
  900 + <span
  901 + class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full"
  902 + ></span>
  903 + <span>Bags</span>
  904 + </div>
  905 + </div>
  906 + </div>
  907 + <!-- Lines chart -->
  908 + <div
  909 + class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
  910 + >
  911 + <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300">
  912 + Lines
  913 + </h4>
  914 + <canvas id="line"></canvas>
  915 + <div
  916 + class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400"
  917 + >
  918 + <!-- Chart legend -->
  919 + <div class="flex items-center">
  920 + <span
  921 + class="inline-block w-3 h-3 mr-1 bg-teal-500 rounded-full"
  922 + ></span>
  923 + <span>Organic</span>
  924 + </div>
  925 + <div class="flex items-center">
  926 + <span
  927 + class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full"
  928 + ></span>
  929 + <span>Paid</span>
  930 + </div>
  931 + </div>
  932 + </div>
  933 + <!-- Bars chart -->
  934 + <div
  935 + class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
  936 + >
  937 + <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300">
  938 + Bars
  939 + </h4>
  940 + <canvas id="bars"></canvas>
  941 + <div
  942 + class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400"
  943 + >
  944 + <!-- Chart legend -->
  945 + <div class="flex items-center">
  946 + <span
  947 + class="inline-block w-3 h-3 mr-1 bg-teal-500 rounded-full"
  948 + ></span>
  949 + <span>Shoes</span>
  950 + </div>
  951 + <div class="flex items-center">
  952 + <span
  953 + class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full"
  954 + ></span>
  955 + <span>Bags</span>
  956 + </div>
  957 + </div>
  958 + </div>
  959 + </div>
  960 + </div>
  961 + </main>
  962 + </div>
  963 + </div>
  964 + </body>
  965 +</html>
html/public/forms.html
Changes suppressed. Click to show
... ... @@ -0,0 +1,1124 @@
  1 +<!DOCTYPE html>
  2 +<html :class="{ 'theme-dark': dark }" x-data="data()" lang="en">
  3 + <head>
  4 + <meta charset="UTF-8" />
  5 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6 + <title>Windmill Dashboard - Forms</title>
  7 + <link
  8 + href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"
  9 + rel="stylesheet"
  10 + />
  11 + <link rel="stylesheet" href="./assets/css/tailwind.output.css" />
  12 + <script
  13 + src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js"
  14 + defer
  15 + ></script>
  16 + <script src="./assets/js/init-alpine.js"></script>
  17 + </head>
  18 + <body>
  19 + <div
  20 + class="flex h-screen bg-gray-50 dark:bg-gray-900"
  21 + :class="{ 'overflow-hidden': isSideMenuOpen}"
  22 + >
  23 + <!-- Desktop sidebar -->
  24 + <aside
  25 + class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0"
  26 + >
  27 + <div class="py-4 text-gray-500 dark:text-gray-400">
  28 + <a
  29 + class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
  30 + href="#"
  31 + >
  32 + Windmill
  33 + </a>
  34 + <ul class="mt-6">
  35 + <li class="relative px-6 py-3">
  36 + <a
  37 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  38 + href="index.html"
  39 + >
  40 + <svg
  41 + class="w-5 h-5"
  42 + aria-hidden="true"
  43 + fill="none"
  44 + stroke-linecap="round"
  45 + stroke-linejoin="round"
  46 + stroke-width="2"
  47 + viewBox="0 0 24 24"
  48 + stroke="currentColor"
  49 + >
  50 + <path
  51 + d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"
  52 + ></path>
  53 + </svg>
  54 + <span class="ml-4">Dashboard</span>
  55 + </a>
  56 + </li>
  57 + </ul>
  58 + <ul>
  59 + <li class="relative px-6 py-3">
  60 + <span
  61 + class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
  62 + aria-hidden="true"
  63 + ></span>
  64 + <a
  65 + class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100"
  66 + href="forms.html"
  67 + >
  68 + <svg
  69 + class="w-5 h-5"
  70 + aria-hidden="true"
  71 + fill="none"
  72 + stroke-linecap="round"
  73 + stroke-linejoin="round"
  74 + stroke-width="2"
  75 + viewBox="0 0 24 24"
  76 + stroke="currentColor"
  77 + >
  78 + <path
  79 + d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
  80 + ></path>
  81 + </svg>
  82 + <span class="ml-4">Forms</span>
  83 + </a>
  84 + </li>
  85 + <li class="relative px-6 py-3">
  86 + <a
  87 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  88 + href="cards.html"
  89 + >
  90 + <svg
  91 + class="w-5 h-5"
  92 + aria-hidden="true"
  93 + fill="none"
  94 + stroke-linecap="round"
  95 + stroke-linejoin="round"
  96 + stroke-width="2"
  97 + viewBox="0 0 24 24"
  98 + stroke="currentColor"
  99 + >
  100 + <path
  101 + d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"
  102 + ></path>
  103 + </svg>
  104 + <span class="ml-4">Cards</span>
  105 + </a>
  106 + </li>
  107 + <li class="relative px-6 py-3">
  108 + <a
  109 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  110 + href="charts.html"
  111 + >
  112 + <svg
  113 + class="w-5 h-5"
  114 + aria-hidden="true"
  115 + fill="none"
  116 + stroke-linecap="round"
  117 + stroke-linejoin="round"
  118 + stroke-width="2"
  119 + viewBox="0 0 24 24"
  120 + stroke="currentColor"
  121 + >
  122 + <path
  123 + d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
  124 + ></path>
  125 + <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
  126 + </svg>
  127 + <span class="ml-4">Charts</span>
  128 + </a>
  129 + </li>
  130 + <li class="relative px-6 py-3">
  131 + <a
  132 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  133 + href="buttons.html"
  134 + >
  135 + <svg
  136 + class="w-5 h-5"
  137 + aria-hidden="true"
  138 + fill="none"
  139 + stroke-linecap="round"
  140 + stroke-linejoin="round"
  141 + stroke-width="2"
  142 + viewBox="0 0 24 24"
  143 + stroke="currentColor"
  144 + >
  145 + <path
  146 + d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"
  147 + ></path>
  148 + </svg>
  149 + <span class="ml-4">Buttons</span>
  150 + </a>
  151 + </li>
  152 + <li class="relative px-6 py-3">
  153 + <a
  154 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  155 + href="modals.html"
  156 + >
  157 + <svg
  158 + class="w-5 h-5"
  159 + aria-hidden="true"
  160 + fill="none"
  161 + stroke-linecap="round"
  162 + stroke-linejoin="round"
  163 + stroke-width="2"
  164 + viewBox="0 0 24 24"
  165 + stroke="currentColor"
  166 + >
  167 + <path
  168 + d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"
  169 + ></path>
  170 + </svg>
  171 + <span class="ml-4">Modals</span>
  172 + </a>
  173 + </li>
  174 + <li class="relative px-6 py-3">
  175 + <a
  176 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  177 + href="tables.html"
  178 + >
  179 + <svg
  180 + class="w-5 h-5"
  181 + aria-hidden="true"
  182 + fill="none"
  183 + stroke-linecap="round"
  184 + stroke-linejoin="round"
  185 + stroke-width="2"
  186 + viewBox="0 0 24 24"
  187 + stroke="currentColor"
  188 + >
  189 + <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
  190 + </svg>
  191 + <span class="ml-4">Tables</span>
  192 + </a>
  193 + </li>
  194 + <li class="relative px-6 py-3">
  195 + <button
  196 + class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  197 + @click="togglePagesMenu"
  198 + aria-haspopup="true"
  199 + >
  200 + <span class="inline-flex items-center">
  201 + <svg
  202 + class="w-5 h-5"
  203 + aria-hidden="true"
  204 + fill="none"
  205 + stroke-linecap="round"
  206 + stroke-linejoin="round"
  207 + stroke-width="2"
  208 + viewBox="0 0 24 24"
  209 + stroke="currentColor"
  210 + >
  211 + <path
  212 + d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"
  213 + ></path>
  214 + </svg>
  215 + <span class="ml-4">Pages</span>
  216 + </span>
  217 + <svg
  218 + class="w-4 h-4"
  219 + aria-hidden="true"
  220 + fill="currentColor"
  221 + viewBox="0 0 20 20"
  222 + >
  223 + <path
  224 + fill-rule="evenodd"
  225 + d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
  226 + clip-rule="evenodd"
  227 + ></path>
  228 + </svg>
  229 + </button>
  230 + <template x-if="isPagesMenuOpen">
  231 + <ul
  232 + x-transition:enter="transition-all ease-in-out duration-300"
  233 + x-transition:enter-start="opacity-25 max-h-0"
  234 + x-transition:enter-end="opacity-100 max-h-xl"
  235 + x-transition:leave="transition-all ease-in-out duration-300"
  236 + x-transition:leave-start="opacity-100 max-h-xl"
  237 + x-transition:leave-end="opacity-0 max-h-0"
  238 + class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900"
  239 + aria-label="submenu"
  240 + >
  241 + <li
  242 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  243 + >
  244 + <a class="w-full" href="pages/login.html">Login</a>
  245 + </li>
  246 + <li
  247 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  248 + >
  249 + <a class="w-full" href="pages/create-account.html">
  250 + Create account
  251 + </a>
  252 + </li>
  253 + <li
  254 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  255 + >
  256 + <a class="w-full" href="pages/forgot-password.html">
  257 + Forgot password
  258 + </a>
  259 + </li>
  260 + <li
  261 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  262 + >
  263 + <a class="w-full" href="pages/404.html">404</a>
  264 + </li>
  265 + <li
  266 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  267 + >
  268 + <a class="w-full" href="pages/blank.html">Blank</a>
  269 + </li>
  270 + </ul>
  271 + </template>
  272 + </li>
  273 + </ul>
  274 + <div class="px-6 my-6">
  275 + <button
  276 + class="flex items-center justify-between w-full px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  277 + >
  278 + Create account
  279 + <span class="ml-2" aria-hidden="true">+</span>
  280 + </button>
  281 + </div>
  282 + </div>
  283 + </aside>
  284 + <!-- Mobile sidebar -->
  285 + <!-- Backdrop -->
  286 + <div
  287 + x-show="isSideMenuOpen"
  288 + x-transition:enter="transition ease-in-out duration-150"
  289 + x-transition:enter-start="opacity-0"
  290 + x-transition:enter-end="opacity-100"
  291 + x-transition:leave="transition ease-in-out duration-150"
  292 + x-transition:leave-start="opacity-100"
  293 + x-transition:leave-end="opacity-0"
  294 + class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center"
  295 + ></div>
  296 + <aside
  297 + class="fixed inset-y-0 z-20 flex-shrink-0 w-64 mt-16 overflow-y-auto bg-white dark:bg-gray-800 md:hidden"
  298 + x-show="isSideMenuOpen"
  299 + x-transition:enter="transition ease-in-out duration-150"
  300 + x-transition:enter-start="opacity-0 transform -translate-x-20"
  301 + x-transition:enter-end="opacity-100"
  302 + x-transition:leave="transition ease-in-out duration-150"
  303 + x-transition:leave-start="opacity-100"
  304 + x-transition:leave-end="opacity-0 transform -translate-x-20"
  305 + @click.away="closeSideMenu"
  306 + @keydown.escape="closeSideMenu"
  307 + >
  308 + <div class="py-4 text-gray-500 dark:text-gray-400">
  309 + <a
  310 + class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
  311 + href="#"
  312 + >
  313 + Windmill
  314 + </a>
  315 + <ul class="mt-6">
  316 + <li class="relative px-6 py-3">
  317 + <a
  318 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  319 + href="index.html"
  320 + >
  321 + <svg
  322 + class="w-5 h-5"
  323 + aria-hidden="true"
  324 + fill="none"
  325 + stroke-linecap="round"
  326 + stroke-linejoin="round"
  327 + stroke-width="2"
  328 + viewBox="0 0 24 24"
  329 + stroke="currentColor"
  330 + >
  331 + <path
  332 + d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"
  333 + ></path>
  334 + </svg>
  335 + <span class="ml-4">Dashboard</span>
  336 + </a>
  337 + </li>
  338 + </ul>
  339 + <ul>
  340 + <li class="relative px-6 py-3">
  341 + <span
  342 + class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
  343 + aria-hidden="true"
  344 + ></span>
  345 + <a
  346 + class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100"
  347 + href="forms.html"
  348 + >
  349 + <svg
  350 + class="w-5 h-5"
  351 + aria-hidden="true"
  352 + fill="none"
  353 + stroke-linecap="round"
  354 + stroke-linejoin="round"
  355 + stroke-width="2"
  356 + viewBox="0 0 24 24"
  357 + stroke="currentColor"
  358 + >
  359 + <path
  360 + d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
  361 + ></path>
  362 + </svg>
  363 + <span class="ml-4">Forms</span>
  364 + </a>
  365 + </li>
  366 + <li class="relative px-6 py-3">
  367 + <a
  368 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  369 + href="cards.html"
  370 + >
  371 + <svg
  372 + class="w-5 h-5"
  373 + aria-hidden="true"
  374 + fill="none"
  375 + stroke-linecap="round"
  376 + stroke-linejoin="round"
  377 + stroke-width="2"
  378 + viewBox="0 0 24 24"
  379 + stroke="currentColor"
  380 + >
  381 + <path
  382 + d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"
  383 + ></path>
  384 + </svg>
  385 + <span class="ml-4">Cards</span>
  386 + </a>
  387 + </li>
  388 + <li class="relative px-6 py-3">
  389 + <a
  390 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  391 + href="charts.html"
  392 + >
  393 + <svg
  394 + class="w-5 h-5"
  395 + aria-hidden="true"
  396 + fill="none"
  397 + stroke-linecap="round"
  398 + stroke-linejoin="round"
  399 + stroke-width="2"
  400 + viewBox="0 0 24 24"
  401 + stroke="currentColor"
  402 + >
  403 + <path
  404 + d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
  405 + ></path>
  406 + <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
  407 + </svg>
  408 + <span class="ml-4">Charts</span>
  409 + </a>
  410 + </li>
  411 + <li class="relative px-6 py-3">
  412 + <a
  413 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  414 + href="buttons.html"
  415 + >
  416 + <svg
  417 + class="w-5 h-5"
  418 + aria-hidden="true"
  419 + fill="none"
  420 + stroke-linecap="round"
  421 + stroke-linejoin="round"
  422 + stroke-width="2"
  423 + viewBox="0 0 24 24"
  424 + stroke="currentColor"
  425 + >
  426 + <path
  427 + d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"
  428 + ></path>
  429 + </svg>
  430 + <span class="ml-4">Buttons</span>
  431 + </a>
  432 + </li>
  433 + <li class="relative px-6 py-3">
  434 + <a
  435 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  436 + href="modals.html"
  437 + >
  438 + <svg
  439 + class="w-5 h-5"
  440 + aria-hidden="true"
  441 + fill="none"
  442 + stroke-linecap="round"
  443 + stroke-linejoin="round"
  444 + stroke-width="2"
  445 + viewBox="0 0 24 24"
  446 + stroke="currentColor"
  447 + >
  448 + <path
  449 + d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"
  450 + ></path>
  451 + </svg>
  452 + <span class="ml-4">Modals</span>
  453 + </a>
  454 + </li>
  455 + <li class="relative px-6 py-3">
  456 + <a
  457 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  458 + href="tables.html"
  459 + >
  460 + <svg
  461 + class="w-5 h-5"
  462 + aria-hidden="true"
  463 + fill="none"
  464 + stroke-linecap="round"
  465 + stroke-linejoin="round"
  466 + stroke-width="2"
  467 + viewBox="0 0 24 24"
  468 + stroke="currentColor"
  469 + >
  470 + <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
  471 + </svg>
  472 + <span class="ml-4">Tables</span>
  473 + </a>
  474 + </li>
  475 + <li class="relative px-6 py-3">
  476 + <button
  477 + class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  478 + @click="togglePagesMenu"
  479 + aria-haspopup="true"
  480 + >
  481 + <span class="inline-flex items-center">
  482 + <svg
  483 + class="w-5 h-5"
  484 + aria-hidden="true"
  485 + fill="none"
  486 + stroke-linecap="round"
  487 + stroke-linejoin="round"
  488 + stroke-width="2"
  489 + viewBox="0 0 24 24"
  490 + stroke="currentColor"
  491 + >
  492 + <path
  493 + d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"
  494 + ></path>
  495 + </svg>
  496 + <span class="ml-4">Pages</span>
  497 + </span>
  498 + <svg
  499 + class="w-4 h-4"
  500 + aria-hidden="true"
  501 + fill="currentColor"
  502 + viewBox="0 0 20 20"
  503 + >
  504 + <path
  505 + fill-rule="evenodd"
  506 + d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
  507 + clip-rule="evenodd"
  508 + ></path>
  509 + </svg>
  510 + </button>
  511 + <template x-if="isPagesMenuOpen">
  512 + <ul
  513 + x-transition:enter="transition-all ease-in-out duration-300"
  514 + x-transition:enter-start="opacity-25 max-h-0"
  515 + x-transition:enter-end="opacity-100 max-h-xl"
  516 + x-transition:leave="transition-all ease-in-out duration-300"
  517 + x-transition:leave-start="opacity-100 max-h-xl"
  518 + x-transition:leave-end="opacity-0 max-h-0"
  519 + class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900"
  520 + aria-label="submenu"
  521 + >
  522 + <li
  523 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  524 + >
  525 + <a class="w-full" href="pages/login.html">Login</a>
  526 + </li>
  527 + <li
  528 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  529 + >
  530 + <a class="w-full" href="pages/create-account.html">
  531 + Create account
  532 + </a>
  533 + </li>
  534 + <li
  535 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  536 + >
  537 + <a class="w-full" href="pages/forgot-password.html">
  538 + Forgot password
  539 + </a>
  540 + </li>
  541 + <li
  542 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  543 + >
  544 + <a class="w-full" href="pages/404.html">404</a>
  545 + </li>
  546 + <li
  547 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  548 + >
  549 + <a class="w-full" href="pages/blank.html">Blank</a>
  550 + </li>
  551 + </ul>
  552 + </template>
  553 + </li>
  554 + </ul>
  555 + <div class="px-6 my-6">
  556 + <button
  557 + class="flex items-center justify-between px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  558 + >
  559 + Create account
  560 + <span class="ml-2" aria-hidden="true">+</span>
  561 + </button>
  562 + </div>
  563 + </div>
  564 + </aside>
  565 + <div class="flex flex-col flex-1">
  566 + <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800">
  567 + <div
  568 + class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300"
  569 + >
  570 + <!-- Mobile hamburger -->
  571 + <button
  572 + class="p-1 -ml-1 mr-5 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple"
  573 + @click="toggleSideMenu"
  574 + aria-label="Menu"
  575 + >
  576 + <svg
  577 + class="w-6 h-6"
  578 + aria-hidden="true"
  579 + fill="currentColor"
  580 + viewBox="0 0 20 20"
  581 + >
  582 + <path
  583 + fill-rule="evenodd"
  584 + d="M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z"
  585 + clip-rule="evenodd"
  586 + ></path>
  587 + </svg>
  588 + </button>
  589 + <!-- Search input -->
  590 + <div class="flex justify-center flex-1 lg:mr-32">
  591 + <div
  592 + class="relative w-full max-w-xl mr-6 focus-within:text-purple-500"
  593 + >
  594 + <div class="absolute inset-y-0 flex items-center pl-2">
  595 + <svg
  596 + class="w-4 h-4"
  597 + aria-hidden="true"
  598 + fill="currentColor"
  599 + viewBox="0 0 20 20"
  600 + >
  601 + <path
  602 + fill-rule="evenodd"
  603 + d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z"
  604 + clip-rule="evenodd"
  605 + ></path>
  606 + </svg>
  607 + </div>
  608 + <input
  609 + class="w-full pl-8 pr-2 text-sm text-gray-700 placeholder-gray-600 bg-gray-100 border-0 rounded-md dark:placeholder-gray-500 dark:focus:shadow-outline-gray dark:focus:placeholder-gray-600 dark:bg-gray-700 dark:text-gray-200 focus:placeholder-gray-500 focus:bg-white focus:border-purple-300 focus:outline-none focus:shadow-outline-purple form-input"
  610 + type="text"
  611 + placeholder="Search for projects"
  612 + aria-label="Search"
  613 + />
  614 + </div>
  615 + </div>
  616 + <ul class="flex items-center flex-shrink-0 space-x-6">
  617 + <!-- Theme toggler -->
  618 + <li class="flex">
  619 + <button
  620 + class="rounded-md focus:outline-none focus:shadow-outline-purple"
  621 + @click="toggleTheme"
  622 + aria-label="Toggle color mode"
  623 + >
  624 + <template x-if="!dark">
  625 + <svg
  626 + class="w-5 h-5"
  627 + aria-hidden="true"
  628 + fill="currentColor"
  629 + viewBox="0 0 20 20"
  630 + >
  631 + <path
  632 + d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"
  633 + ></path>
  634 + </svg>
  635 + </template>
  636 + <template x-if="dark">
  637 + <svg
  638 + class="w-5 h-5"
  639 + aria-hidden="true"
  640 + fill="currentColor"
  641 + viewBox="0 0 20 20"
  642 + >
  643 + <path
  644 + fill-rule="evenodd"
  645 + d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z"
  646 + clip-rule="evenodd"
  647 + ></path>
  648 + </svg>
  649 + </template>
  650 + </button>
  651 + </li>
  652 + <!-- Notifications menu -->
  653 + <li class="relative">
  654 + <button
  655 + class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple"
  656 + @click="toggleNotificationsMenu"
  657 + @keydown.escape="closeNotificationsMenu"
  658 + aria-label="Notifications"
  659 + aria-haspopup="true"
  660 + >
  661 + <svg
  662 + class="w-5 h-5"
  663 + aria-hidden="true"
  664 + fill="currentColor"
  665 + viewBox="0 0 20 20"
  666 + >
  667 + <path
  668 + d="M10 2a6 6 0 00-6 6v3.586l-.707.707A1 1 0 004 14h12a1 1 0 00.707-1.707L16 11.586V8a6 6 0 00-6-6zM10 18a3 3 0 01-3-3h6a3 3 0 01-3 3z"
  669 + ></path>
  670 + </svg>
  671 + <!-- Notification badge -->
  672 + <span
  673 + aria-hidden="true"
  674 + class="absolute top-0 right-0 inline-block w-3 h-3 transform translate-x-1 -translate-y-1 bg-red-600 border-2 border-white rounded-full dark:border-gray-800"
  675 + ></span>
  676 + </button>
  677 + <template x-if="isNotificationsMenuOpen">
  678 + <ul
  679 + x-transition:leave="transition ease-in duration-150"
  680 + x-transition:leave-start="opacity-100"
  681 + x-transition:leave-end="opacity-0"
  682 + @click.away="closeNotificationsMenu"
  683 + @keydown.escape="closeNotificationsMenu"
  684 + class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:text-gray-300 dark:border-gray-700 dark:bg-gray-700"
  685 + aria-label="submenu"
  686 + >
  687 + <li class="flex">
  688 + <a
  689 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  690 + href="#"
  691 + >
  692 + <span>Messages</span>
  693 + <span
  694 + class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600"
  695 + >
  696 + 13
  697 + </span>
  698 + </a>
  699 + </li>
  700 + <li class="flex">
  701 + <a
  702 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  703 + href="#"
  704 + >
  705 + <span>Sales</span>
  706 + <span
  707 + class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600"
  708 + >
  709 + 2
  710 + </span>
  711 + </a>
  712 + </li>
  713 + <li class="flex">
  714 + <a
  715 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  716 + href="#"
  717 + >
  718 + <span>Alerts</span>
  719 + </a>
  720 + </li>
  721 + </ul>
  722 + </template>
  723 + </li>
  724 + <!-- Profile menu -->
  725 + <li class="relative">
  726 + <button
  727 + class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none"
  728 + @click="toggleProfileMenu"
  729 + @keydown.escape="closeProfileMenu"
  730 + aria-label="Account"
  731 + aria-haspopup="true"
  732 + >
  733 + <img
  734 + class="object-cover w-8 h-8 rounded-full"
  735 + src="https://images.unsplash.com/photo-1502378735452-bc7d86632805?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&s=aa3a807e1bbdfd4364d1f449eaa96d82"
  736 + alt=""
  737 + aria-hidden="true"
  738 + />
  739 + </button>
  740 + <template x-if="isProfileMenuOpen">
  741 + <ul
  742 + x-transition:leave="transition ease-in duration-150"
  743 + x-transition:leave-start="opacity-100"
  744 + x-transition:leave-end="opacity-0"
  745 + @click.away="closeProfileMenu"
  746 + @keydown.escape="closeProfileMenu"
  747 + class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:border-gray-700 dark:text-gray-300 dark:bg-gray-700"
  748 + aria-label="submenu"
  749 + >
  750 + <li class="flex">
  751 + <a
  752 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  753 + href="#"
  754 + >
  755 + <svg
  756 + class="w-4 h-4 mr-3"
  757 + aria-hidden="true"
  758 + fill="none"
  759 + stroke-linecap="round"
  760 + stroke-linejoin="round"
  761 + stroke-width="2"
  762 + viewBox="0 0 24 24"
  763 + stroke="currentColor"
  764 + >
  765 + <path
  766 + d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"
  767 + ></path>
  768 + </svg>
  769 + <span>Profile</span>
  770 + </a>
  771 + </li>
  772 + <li class="flex">
  773 + <a
  774 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  775 + href="#"
  776 + >
  777 + <svg
  778 + class="w-4 h-4 mr-3"
  779 + aria-hidden="true"
  780 + fill="none"
  781 + stroke-linecap="round"
  782 + stroke-linejoin="round"
  783 + stroke-width="2"
  784 + viewBox="0 0 24 24"
  785 + stroke="currentColor"
  786 + >
  787 + <path
  788 + d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"
  789 + ></path>
  790 + <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
  791 + </svg>
  792 + <span>Settings</span>
  793 + </a>
  794 + </li>
  795 + <li class="flex">
  796 + <a
  797 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  798 + href="#"
  799 + >
  800 + <svg
  801 + class="w-4 h-4 mr-3"
  802 + aria-hidden="true"
  803 + fill="none"
  804 + stroke-linecap="round"
  805 + stroke-linejoin="round"
  806 + stroke-width="2"
  807 + viewBox="0 0 24 24"
  808 + stroke="currentColor"
  809 + >
  810 + <path
  811 + d="M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1"
  812 + ></path>
  813 + </svg>
  814 + <span>Log out</span>
  815 + </a>
  816 + </li>
  817 + </ul>
  818 + </template>
  819 + </li>
  820 + </ul>
  821 + </div>
  822 + </header>
  823 + <main class="h-full pb-16 overflow-y-auto">
  824 + <div class="container px-6 mx-auto grid">
  825 + <h2
  826 + class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"
  827 + >
  828 + Forms
  829 + </h2>
  830 + <!-- CTA -->
  831 + <a
  832 + class="flex items-center justify-between p-4 mb-8 text-sm font-semibold text-purple-100 bg-purple-600 rounded-lg shadow-md focus:outline-none focus:shadow-outline-purple"
  833 + href="https://github.com/estevanmaito/windmill-dashboard"
  834 + >
  835 + <div class="flex items-center">
  836 + <svg
  837 + class="w-5 h-5 mr-2"
  838 + fill="currentColor"
  839 + viewBox="0 0 20 20"
  840 + >
  841 + <path
  842 + d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"
  843 + ></path>
  844 + </svg>
  845 + <span>Star this project on GitHub</span>
  846 + </div>
  847 + <span>View more &RightArrow;</span>
  848 + </a>
  849 +
  850 + <!-- General elements -->
  851 + <h4
  852 + class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
  853 + >
  854 + Elements
  855 + </h4>
  856 + <div
  857 + class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"
  858 + >
  859 + <label class="block text-sm">
  860 + <span class="text-gray-700 dark:text-gray-400">Name</span>
  861 + <input
  862 + class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
  863 + placeholder="Jane Doe"
  864 + />
  865 + </label>
  866 +
  867 + <div class="mt-4 text-sm">
  868 + <span class="text-gray-700 dark:text-gray-400">
  869 + Account Type
  870 + </span>
  871 + <div class="mt-2">
  872 + <label
  873 + class="inline-flex items-center text-gray-600 dark:text-gray-400"
  874 + >
  875 + <input
  876 + type="radio"
  877 + class="text-purple-600 form-radio focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
  878 + name="accountType"
  879 + value="personal"
  880 + />
  881 + <span class="ml-2">Personal</span>
  882 + </label>
  883 + <label
  884 + class="inline-flex items-center ml-6 text-gray-600 dark:text-gray-400"
  885 + >
  886 + <input
  887 + type="radio"
  888 + class="text-purple-600 form-radio focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
  889 + name="accountType"
  890 + value="busines"
  891 + />
  892 + <span class="ml-2">Business</span>
  893 + </label>
  894 + </div>
  895 + </div>
  896 +
  897 + <label class="block mt-4 text-sm">
  898 + <span class="text-gray-700 dark:text-gray-400">
  899 + Requested Limit
  900 + </span>
  901 + <select
  902 + class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
  903 + >
  904 + <option>$1,000</option>
  905 + <option>$5,000</option>
  906 + <option>$10,000</option>
  907 + <option>$25,000</option>
  908 + </select>
  909 + </label>
  910 +
  911 + <label class="block mt-4 text-sm">
  912 + <span class="text-gray-700 dark:text-gray-400">
  913 + Multiselect
  914 + </span>
  915 + <select
  916 + class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-multiselect focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
  917 + multiple
  918 + >
  919 + <option>Option 1</option>
  920 + <option>Option 2</option>
  921 + <option>Option 3</option>
  922 + <option>Option 4</option>
  923 + <option>Option 5</option>
  924 + </select>
  925 + </label>
  926 +
  927 + <label class="block mt-4 text-sm">
  928 + <span class="text-gray-700 dark:text-gray-400">Message</span>
  929 + <textarea
  930 + class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-textarea focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
  931 + rows="3"
  932 + placeholder="Enter some long form content."
  933 + ></textarea>
  934 + </label>
  935 +
  936 + <div class="flex mt-6 text-sm">
  937 + <label class="flex items-center dark:text-gray-400">
  938 + <input
  939 + type="checkbox"
  940 + class="text-purple-600 form-checkbox focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
  941 + />
  942 + <span class="ml-2">
  943 + I agree to the
  944 + <span class="underline">privacy policy</span>
  945 + </span>
  946 + </label>
  947 + </div>
  948 + </div>
  949 +
  950 + <!-- Validation inputs -->
  951 + <h4
  952 + class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
  953 + >
  954 + Validation
  955 + </h4>
  956 + <div
  957 + class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"
  958 + >
  959 + <!-- Invalid input -->
  960 + <label class="block text-sm">
  961 + <span class="text-gray-700 dark:text-gray-400">
  962 + Invalid input
  963 + </span>
  964 + <input
  965 + class="block w-full mt-1 text-sm border-red-600 dark:text-gray-300 dark:bg-gray-700 focus:border-red-400 focus:outline-none focus:shadow-outline-red form-input"
  966 + placeholder="Jane Doe"
  967 + />
  968 + <span class="text-xs text-red-600 dark:text-red-400">
  969 + Your password is too short.
  970 + </span>
  971 + </label>
  972 +
  973 + <!-- Valid input -->
  974 + <label class="block mt-4 text-sm">
  975 + <span class="text-gray-700 dark:text-gray-400">
  976 + Valid input
  977 + </span>
  978 + <input
  979 + class="block w-full mt-1 text-sm border-green-600 dark:text-gray-300 dark:bg-gray-700 focus:border-green-400 focus:outline-none focus:shadow-outline-green form-input"
  980 + placeholder="Jane Doe"
  981 + />
  982 + <span class="text-xs text-green-600 dark:text-green-400">
  983 + Your password is strong.
  984 + </span>
  985 + </label>
  986 +
  987 + <!-- Helper text -->
  988 + <label class="block mt-4 text-sm">
  989 + <span class="text-gray-700 dark:text-gray-400">
  990 + Helper text
  991 + </span>
  992 + <input
  993 + class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input"
  994 + placeholder="Jane Doe"
  995 + />
  996 + <span class="text-xs text-gray-600 dark:text-gray-400">
  997 + Your password must be at least 6 characters long.
  998 + </span>
  999 + </label>
  1000 + </div>
  1001 +
  1002 + <!-- Inputs with icons -->
  1003 + <h4
  1004 + class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
  1005 + >
  1006 + Icons
  1007 + </h4>
  1008 + <div
  1009 + class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"
  1010 + >
  1011 + <label class="block text-sm">
  1012 + <span class="text-gray-700 dark:text-gray-400">Icon left</span>
  1013 + <!-- focus-within sets the color for the icon when input is focused -->
  1014 + <div
  1015 + class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400"
  1016 + >
  1017 + <input
  1018 + class="block w-full pl-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input"
  1019 + placeholder="Jane Doe"
  1020 + />
  1021 + <div
  1022 + class="absolute inset-y-0 flex items-center ml-3 pointer-events-none"
  1023 + >
  1024 + <svg
  1025 + class="w-5 h-5"
  1026 + aria-hidden="true"
  1027 + fill="none"
  1028 + stroke-linecap="round"
  1029 + stroke-linejoin="round"
  1030 + stroke-width="2"
  1031 + viewBox="0 0 24 24"
  1032 + stroke="currentColor"
  1033 + >
  1034 + <path
  1035 + d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"
  1036 + ></path>
  1037 + </svg>
  1038 + </div>
  1039 + </div>
  1040 + </label>
  1041 +
  1042 + <label class="block mt-4 text-sm">
  1043 + <span class="text-gray-700 dark:text-gray-400">Icon right</span>
  1044 + <!-- focus-within sets the color for the icon when input is focused -->
  1045 + <div
  1046 + class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400"
  1047 + >
  1048 + <input
  1049 + class="block w-full pr-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input"
  1050 + placeholder="Jane Doe"
  1051 + />
  1052 + <div
  1053 + class="absolute inset-y-0 right-0 flex items-center mr-3 pointer-events-none"
  1054 + >
  1055 + <svg
  1056 + class="w-5 h-5"
  1057 + aria-hidden="true"
  1058 + fill="none"
  1059 + stroke-linecap="round"
  1060 + stroke-linejoin="round"
  1061 + stroke-width="2"
  1062 + viewBox="0 0 24 24"
  1063 + stroke="currentColor"
  1064 + >
  1065 + <path
  1066 + d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"
  1067 + ></path>
  1068 + </svg>
  1069 + </div>
  1070 + </div>
  1071 + </label>
  1072 + </div>
  1073 +
  1074 + <!-- Inputs with buttons -->
  1075 + <h4
  1076 + class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
  1077 + >
  1078 + Buttons
  1079 + </h4>
  1080 + <div
  1081 + class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"
  1082 + >
  1083 + <label class="block text-sm">
  1084 + <span class="text-gray-700 dark:text-gray-400">
  1085 + Button left
  1086 + </span>
  1087 + <div class="relative">
  1088 + <input
  1089 + class="block w-full pl-20 mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input"
  1090 + placeholder="Jane Doe"
  1091 + />
  1092 + <button
  1093 + class="absolute inset-y-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-l-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
  1094 + >
  1095 + Click
  1096 + </button>
  1097 + </div>
  1098 + </label>
  1099 +
  1100 + <label class="block mt-4 text-sm">
  1101 + <span class="text-gray-700 dark:text-gray-400">
  1102 + Button right
  1103 + </span>
  1104 + <div
  1105 + class="relative text-gray-500 focus-within:text-purple-600"
  1106 + >
  1107 + <input
  1108 + class="block w-full pr-20 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input"
  1109 + placeholder="Jane Doe"
  1110 + />
  1111 + <button
  1112 + class="absolute inset-y-0 right-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-r-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  1113 + >
  1114 + Click
  1115 + </button>
  1116 + </div>
  1117 + </label>
  1118 + </div>
  1119 + </div>
  1120 + </main>
  1121 + </div>
  1122 + </div>
  1123 + </body>
  1124 +</html>
html/public/index.html
Changes suppressed. Click to show
... ... @@ -0,0 +1,1525 @@
  1 +<!DOCTYPE html>
  2 +<html :class="{ 'theme-dark': dark }" x-data="data()" lang="en">
  3 + <head>
  4 + <meta charset="UTF-8" />
  5 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6 + <title>Windmill Dashboard</title>
  7 + <link
  8 + href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"
  9 + rel="stylesheet"
  10 + />
  11 + <link rel="stylesheet" href="./assets/css/tailwind.output.css" />
  12 + <script
  13 + src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js"
  14 + defer
  15 + ></script>
  16 + <script src="./assets/js/init-alpine.js"></script>
  17 + <link
  18 + rel="stylesheet"
  19 + href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css"
  20 + />
  21 + <script
  22 + src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"
  23 + defer
  24 + ></script>
  25 + <script src="./assets/js/charts-lines.js" defer></script>
  26 + <script src="./assets/js/charts-pie.js" defer></script>
  27 + </head>
  28 + <body>
  29 + <div
  30 + class="flex h-screen bg-gray-50 dark:bg-gray-900"
  31 + :class="{ 'overflow-hidden': isSideMenuOpen }"
  32 + >
  33 + <!-- Desktop sidebar -->
  34 + <aside
  35 + class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0"
  36 + >
  37 + <div class="py-4 text-gray-500 dark:text-gray-400">
  38 + <a
  39 + class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
  40 + href="#"
  41 + >
  42 + Windmill
  43 + </a>
  44 + <ul class="mt-6">
  45 + <li class="relative px-6 py-3">
  46 + <span
  47 + class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
  48 + aria-hidden="true"
  49 + ></span>
  50 + <a
  51 + class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100"
  52 + href="index.html"
  53 + >
  54 + <svg
  55 + class="w-5 h-5"
  56 + aria-hidden="true"
  57 + fill="none"
  58 + stroke-linecap="round"
  59 + stroke-linejoin="round"
  60 + stroke-width="2"
  61 + viewBox="0 0 24 24"
  62 + stroke="currentColor"
  63 + >
  64 + <path
  65 + d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"
  66 + ></path>
  67 + </svg>
  68 + <span class="ml-4">Dashboard</span>
  69 + </a>
  70 + </li>
  71 + </ul>
  72 + <ul>
  73 + <li class="relative px-6 py-3">
  74 + <a
  75 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  76 + href="forms.html"
  77 + >
  78 + <svg
  79 + class="w-5 h-5"
  80 + aria-hidden="true"
  81 + fill="none"
  82 + stroke-linecap="round"
  83 + stroke-linejoin="round"
  84 + stroke-width="2"
  85 + viewBox="0 0 24 24"
  86 + stroke="currentColor"
  87 + >
  88 + <path
  89 + d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
  90 + ></path>
  91 + </svg>
  92 + <span class="ml-4">Forms</span>
  93 + </a>
  94 + </li>
  95 + <li class="relative px-6 py-3">
  96 + <a
  97 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  98 + href="cards.html"
  99 + >
  100 + <svg
  101 + class="w-5 h-5"
  102 + aria-hidden="true"
  103 + fill="none"
  104 + stroke-linecap="round"
  105 + stroke-linejoin="round"
  106 + stroke-width="2"
  107 + viewBox="0 0 24 24"
  108 + stroke="currentColor"
  109 + >
  110 + <path
  111 + d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"
  112 + ></path>
  113 + </svg>
  114 + <span class="ml-4">Cards</span>
  115 + </a>
  116 + </li>
  117 + <li class="relative px-6 py-3">
  118 + <a
  119 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  120 + href="charts.html"
  121 + >
  122 + <svg
  123 + class="w-5 h-5"
  124 + aria-hidden="true"
  125 + fill="none"
  126 + stroke-linecap="round"
  127 + stroke-linejoin="round"
  128 + stroke-width="2"
  129 + viewBox="0 0 24 24"
  130 + stroke="currentColor"
  131 + >
  132 + <path
  133 + d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
  134 + ></path>
  135 + <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
  136 + </svg>
  137 + <span class="ml-4">Charts</span>
  138 + </a>
  139 + </li>
  140 + <li class="relative px-6 py-3">
  141 + <a
  142 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  143 + href="buttons.html"
  144 + >
  145 + <svg
  146 + class="w-5 h-5"
  147 + aria-hidden="true"
  148 + fill="none"
  149 + stroke-linecap="round"
  150 + stroke-linejoin="round"
  151 + stroke-width="2"
  152 + viewBox="0 0 24 24"
  153 + stroke="currentColor"
  154 + >
  155 + <path
  156 + d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"
  157 + ></path>
  158 + </svg>
  159 + <span class="ml-4">Buttons</span>
  160 + </a>
  161 + </li>
  162 + <li class="relative px-6 py-3">
  163 + <a
  164 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  165 + href="modals.html"
  166 + >
  167 + <svg
  168 + class="w-5 h-5"
  169 + aria-hidden="true"
  170 + fill="none"
  171 + stroke-linecap="round"
  172 + stroke-linejoin="round"
  173 + stroke-width="2"
  174 + viewBox="0 0 24 24"
  175 + stroke="currentColor"
  176 + >
  177 + <path
  178 + d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"
  179 + ></path>
  180 + </svg>
  181 + <span class="ml-4">Modals</span>
  182 + </a>
  183 + </li>
  184 + <li class="relative px-6 py-3">
  185 + <a
  186 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  187 + href="tables.html"
  188 + >
  189 + <svg
  190 + class="w-5 h-5"
  191 + aria-hidden="true"
  192 + fill="none"
  193 + stroke-linecap="round"
  194 + stroke-linejoin="round"
  195 + stroke-width="2"
  196 + viewBox="0 0 24 24"
  197 + stroke="currentColor"
  198 + >
  199 + <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
  200 + </svg>
  201 + <span class="ml-4">Tables</span>
  202 + </a>
  203 + </li>
  204 + <li class="relative px-6 py-3">
  205 + <button
  206 + class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  207 + @click="togglePagesMenu"
  208 + aria-haspopup="true"
  209 + >
  210 + <span class="inline-flex items-center">
  211 + <svg
  212 + class="w-5 h-5"
  213 + aria-hidden="true"
  214 + fill="none"
  215 + stroke-linecap="round"
  216 + stroke-linejoin="round"
  217 + stroke-width="2"
  218 + viewBox="0 0 24 24"
  219 + stroke="currentColor"
  220 + >
  221 + <path
  222 + d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"
  223 + ></path>
  224 + </svg>
  225 + <span class="ml-4">Pages</span>
  226 + </span>
  227 + <svg
  228 + class="w-4 h-4"
  229 + aria-hidden="true"
  230 + fill="currentColor"
  231 + viewBox="0 0 20 20"
  232 + >
  233 + <path
  234 + fill-rule="evenodd"
  235 + d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
  236 + clip-rule="evenodd"
  237 + ></path>
  238 + </svg>
  239 + </button>
  240 + <template x-if="isPagesMenuOpen">
  241 + <ul
  242 + x-transition:enter="transition-all ease-in-out duration-300"
  243 + x-transition:enter-start="opacity-25 max-h-0"
  244 + x-transition:enter-end="opacity-100 max-h-xl"
  245 + x-transition:leave="transition-all ease-in-out duration-300"
  246 + x-transition:leave-start="opacity-100 max-h-xl"
  247 + x-transition:leave-end="opacity-0 max-h-0"
  248 + class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900"
  249 + aria-label="submenu"
  250 + >
  251 + <li
  252 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  253 + >
  254 + <a class="w-full" href="pages/login.html">Login</a>
  255 + </li>
  256 + <li
  257 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  258 + >
  259 + <a class="w-full" href="pages/create-account.html">
  260 + Create account
  261 + </a>
  262 + </li>
  263 + <li
  264 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  265 + >
  266 + <a class="w-full" href="pages/forgot-password.html">
  267 + Forgot password
  268 + </a>
  269 + </li>
  270 + <li
  271 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  272 + >
  273 + <a class="w-full" href="pages/404.html">404</a>
  274 + </li>
  275 + <li
  276 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  277 + >
  278 + <a class="w-full" href="pages/blank.html">Blank</a>
  279 + </li>
  280 + </ul>
  281 + </template>
  282 + </li>
  283 + </ul>
  284 + <div class="px-6 my-6">
  285 + <button
  286 + class="flex items-center justify-between w-full px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  287 + >
  288 + Create account
  289 + <span class="ml-2" aria-hidden="true">+</span>
  290 + </button>
  291 + </div>
  292 + </div>
  293 + </aside>
  294 + <!-- Mobile sidebar -->
  295 + <!-- Backdrop -->
  296 + <div
  297 + x-show="isSideMenuOpen"
  298 + x-transition:enter="transition ease-in-out duration-150"
  299 + x-transition:enter-start="opacity-0"
  300 + x-transition:enter-end="opacity-100"
  301 + x-transition:leave="transition ease-in-out duration-150"
  302 + x-transition:leave-start="opacity-100"
  303 + x-transition:leave-end="opacity-0"
  304 + class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center"
  305 + ></div>
  306 + <aside
  307 + class="fixed inset-y-0 z-20 flex-shrink-0 w-64 mt-16 overflow-y-auto bg-white dark:bg-gray-800 md:hidden"
  308 + x-show="isSideMenuOpen"
  309 + x-transition:enter="transition ease-in-out duration-150"
  310 + x-transition:enter-start="opacity-0 transform -translate-x-20"
  311 + x-transition:enter-end="opacity-100"
  312 + x-transition:leave="transition ease-in-out duration-150"
  313 + x-transition:leave-start="opacity-100"
  314 + x-transition:leave-end="opacity-0 transform -translate-x-20"
  315 + @click.away="closeSideMenu"
  316 + @keydown.escape="closeSideMenu"
  317 + >
  318 + <div class="py-4 text-gray-500 dark:text-gray-400">
  319 + <a
  320 + class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
  321 + href="#"
  322 + >
  323 + Windmill
  324 + </a>
  325 + <ul class="mt-6">
  326 + <li class="relative px-6 py-3">
  327 + <span
  328 + class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
  329 + aria-hidden="true"
  330 + ></span>
  331 + <a
  332 + class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100"
  333 + href="index.html"
  334 + >
  335 + <svg
  336 + class="w-5 h-5"
  337 + aria-hidden="true"
  338 + fill="none"
  339 + stroke-linecap="round"
  340 + stroke-linejoin="round"
  341 + stroke-width="2"
  342 + viewBox="0 0 24 24"
  343 + stroke="currentColor"
  344 + >
  345 + <path
  346 + d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"
  347 + ></path>
  348 + </svg>
  349 + <span class="ml-4">Dashboard</span>
  350 + </a>
  351 + </li>
  352 + </ul>
  353 + <ul>
  354 + <li class="relative px-6 py-3">
  355 + <a
  356 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  357 + href="forms.html"
  358 + >
  359 + <svg
  360 + class="w-5 h-5"
  361 + aria-hidden="true"
  362 + fill="none"
  363 + stroke-linecap="round"
  364 + stroke-linejoin="round"
  365 + stroke-width="2"
  366 + viewBox="0 0 24 24"
  367 + stroke="currentColor"
  368 + >
  369 + <path
  370 + d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
  371 + ></path>
  372 + </svg>
  373 + <span class="ml-4">Forms</span>
  374 + </a>
  375 + </li>
  376 + <li class="relative px-6 py-3">
  377 + <a
  378 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  379 + href="cards.html"
  380 + >
  381 + <svg
  382 + class="w-5 h-5"
  383 + aria-hidden="true"
  384 + fill="none"
  385 + stroke-linecap="round"
  386 + stroke-linejoin="round"
  387 + stroke-width="2"
  388 + viewBox="0 0 24 24"
  389 + stroke="currentColor"
  390 + >
  391 + <path
  392 + d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"
  393 + ></path>
  394 + </svg>
  395 + <span class="ml-4">Cards</span>
  396 + </a>
  397 + </li>
  398 + <li class="relative px-6 py-3">
  399 + <a
  400 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  401 + href="charts.html"
  402 + >
  403 + <svg
  404 + class="w-5 h-5"
  405 + aria-hidden="true"
  406 + fill="none"
  407 + stroke-linecap="round"
  408 + stroke-linejoin="round"
  409 + stroke-width="2"
  410 + viewBox="0 0 24 24"
  411 + stroke="currentColor"
  412 + >
  413 + <path
  414 + d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
  415 + ></path>
  416 + <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
  417 + </svg>
  418 + <span class="ml-4">Charts</span>
  419 + </a>
  420 + </li>
  421 + <li class="relative px-6 py-3">
  422 + <a
  423 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  424 + href="buttons.html"
  425 + >
  426 + <svg
  427 + class="w-5 h-5"
  428 + aria-hidden="true"
  429 + fill="none"
  430 + stroke-linecap="round"
  431 + stroke-linejoin="round"
  432 + stroke-width="2"
  433 + viewBox="0 0 24 24"
  434 + stroke="currentColor"
  435 + >
  436 + <path
  437 + d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"
  438 + ></path>
  439 + </svg>
  440 + <span class="ml-4">Buttons</span>
  441 + </a>
  442 + </li>
  443 + <li class="relative px-6 py-3">
  444 + <a
  445 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  446 + href="modals.html"
  447 + >
  448 + <svg
  449 + class="w-5 h-5"
  450 + aria-hidden="true"
  451 + fill="none"
  452 + stroke-linecap="round"
  453 + stroke-linejoin="round"
  454 + stroke-width="2"
  455 + viewBox="0 0 24 24"
  456 + stroke="currentColor"
  457 + >
  458 + <path
  459 + d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"
  460 + ></path>
  461 + </svg>
  462 + <span class="ml-4">Modals</span>
  463 + </a>
  464 + </li>
  465 + <li class="relative px-6 py-3">
  466 + <a
  467 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  468 + href="tables.html"
  469 + >
  470 + <svg
  471 + class="w-5 h-5"
  472 + aria-hidden="true"
  473 + fill="none"
  474 + stroke-linecap="round"
  475 + stroke-linejoin="round"
  476 + stroke-width="2"
  477 + viewBox="0 0 24 24"
  478 + stroke="currentColor"
  479 + >
  480 + <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
  481 + </svg>
  482 + <span class="ml-4">Tables</span>
  483 + </a>
  484 + </li>
  485 + <li class="relative px-6 py-3">
  486 + <button
  487 + class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  488 + @click="togglePagesMenu"
  489 + aria-haspopup="true"
  490 + >
  491 + <span class="inline-flex items-center">
  492 + <svg
  493 + class="w-5 h-5"
  494 + aria-hidden="true"
  495 + fill="none"
  496 + stroke-linecap="round"
  497 + stroke-linejoin="round"
  498 + stroke-width="2"
  499 + viewBox="0 0 24 24"
  500 + stroke="currentColor"
  501 + >
  502 + <path
  503 + d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"
  504 + ></path>
  505 + </svg>
  506 + <span class="ml-4">Pages</span>
  507 + </span>
  508 + <svg
  509 + class="w-4 h-4"
  510 + aria-hidden="true"
  511 + fill="currentColor"
  512 + viewBox="0 0 20 20"
  513 + >
  514 + <path
  515 + fill-rule="evenodd"
  516 + d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
  517 + clip-rule="evenodd"
  518 + ></path>
  519 + </svg>
  520 + </button>
  521 + <template x-if="isPagesMenuOpen">
  522 + <ul
  523 + x-transition:enter="transition-all ease-in-out duration-300"
  524 + x-transition:enter-start="opacity-25 max-h-0"
  525 + x-transition:enter-end="opacity-100 max-h-xl"
  526 + x-transition:leave="transition-all ease-in-out duration-300"
  527 + x-transition:leave-start="opacity-100 max-h-xl"
  528 + x-transition:leave-end="opacity-0 max-h-0"
  529 + class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900"
  530 + aria-label="submenu"
  531 + >
  532 + <li
  533 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  534 + >
  535 + <a class="w-full" href="pages/login.html">Login</a>
  536 + </li>
  537 + <li
  538 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  539 + >
  540 + <a class="w-full" href="pages/create-account.html">
  541 + Create account
  542 + </a>
  543 + </li>
  544 + <li
  545 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  546 + >
  547 + <a class="w-full" href="pages/forgot-password.html">
  548 + Forgot password
  549 + </a>
  550 + </li>
  551 + <li
  552 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  553 + >
  554 + <a class="w-full" href="pages/404.html">404</a>
  555 + </li>
  556 + <li
  557 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  558 + >
  559 + <a class="w-full" href="pages/blank.html">Blank</a>
  560 + </li>
  561 + </ul>
  562 + </template>
  563 + </li>
  564 + </ul>
  565 + <div class="px-6 my-6">
  566 + <button
  567 + class="flex items-center justify-between px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  568 + >
  569 + Create account
  570 + <span class="ml-2" aria-hidden="true">+</span>
  571 + </button>
  572 + </div>
  573 + </div>
  574 + </aside>
  575 + <div class="flex flex-col flex-1 w-full">
  576 + <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800">
  577 + <div
  578 + class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300"
  579 + >
  580 + <!-- Mobile hamburger -->
  581 + <button
  582 + class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple"
  583 + @click="toggleSideMenu"
  584 + aria-label="Menu"
  585 + >
  586 + <svg
  587 + class="w-6 h-6"
  588 + aria-hidden="true"
  589 + fill="currentColor"
  590 + viewBox="0 0 20 20"
  591 + >
  592 + <path
  593 + fill-rule="evenodd"
  594 + d="M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z"
  595 + clip-rule="evenodd"
  596 + ></path>
  597 + </svg>
  598 + </button>
  599 + <!-- Search input -->
  600 + <div class="flex justify-center flex-1 lg:mr-32">
  601 + <div
  602 + class="relative w-full max-w-xl mr-6 focus-within:text-purple-500"
  603 + >
  604 + <div class="absolute inset-y-0 flex items-center pl-2">
  605 + <svg
  606 + class="w-4 h-4"
  607 + aria-hidden="true"
  608 + fill="currentColor"
  609 + viewBox="0 0 20 20"
  610 + >
  611 + <path
  612 + fill-rule="evenodd"
  613 + d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z"
  614 + clip-rule="evenodd"
  615 + ></path>
  616 + </svg>
  617 + </div>
  618 + <input
  619 + class="w-full pl-8 pr-2 text-sm text-gray-700 placeholder-gray-600 bg-gray-100 border-0 rounded-md dark:placeholder-gray-500 dark:focus:shadow-outline-gray dark:focus:placeholder-gray-600 dark:bg-gray-700 dark:text-gray-200 focus:placeholder-gray-500 focus:bg-white focus:border-purple-300 focus:outline-none focus:shadow-outline-purple form-input"
  620 + type="text"
  621 + placeholder="Search for projects"
  622 + aria-label="Search"
  623 + />
  624 + </div>
  625 + </div>
  626 + <ul class="flex items-center flex-shrink-0 space-x-6">
  627 + <!-- Theme toggler -->
  628 + <li class="flex">
  629 + <button
  630 + class="rounded-md focus:outline-none focus:shadow-outline-purple"
  631 + @click="toggleTheme"
  632 + aria-label="Toggle color mode"
  633 + >
  634 + <template x-if="!dark">
  635 + <svg
  636 + class="w-5 h-5"
  637 + aria-hidden="true"
  638 + fill="currentColor"
  639 + viewBox="0 0 20 20"
  640 + >
  641 + <path
  642 + d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"
  643 + ></path>
  644 + </svg>
  645 + </template>
  646 + <template x-if="dark">
  647 + <svg
  648 + class="w-5 h-5"
  649 + aria-hidden="true"
  650 + fill="currentColor"
  651 + viewBox="0 0 20 20"
  652 + >
  653 + <path
  654 + fill-rule="evenodd"
  655 + d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z"
  656 + clip-rule="evenodd"
  657 + ></path>
  658 + </svg>
  659 + </template>
  660 + </button>
  661 + </li>
  662 + <!-- Notifications menu -->
  663 + <li class="relative">
  664 + <button
  665 + class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple"
  666 + @click="toggleNotificationsMenu"
  667 + @keydown.escape="closeNotificationsMenu"
  668 + aria-label="Notifications"
  669 + aria-haspopup="true"
  670 + >
  671 + <svg
  672 + class="w-5 h-5"
  673 + aria-hidden="true"
  674 + fill="currentColor"
  675 + viewBox="0 0 20 20"
  676 + >
  677 + <path
  678 + d="M10 2a6 6 0 00-6 6v3.586l-.707.707A1 1 0 004 14h12a1 1 0 00.707-1.707L16 11.586V8a6 6 0 00-6-6zM10 18a3 3 0 01-3-3h6a3 3 0 01-3 3z"
  679 + ></path>
  680 + </svg>
  681 + <!-- Notification badge -->
  682 + <span
  683 + aria-hidden="true"
  684 + class="absolute top-0 right-0 inline-block w-3 h-3 transform translate-x-1 -translate-y-1 bg-red-600 border-2 border-white rounded-full dark:border-gray-800"
  685 + ></span>
  686 + </button>
  687 + <template x-if="isNotificationsMenuOpen">
  688 + <ul
  689 + x-transition:leave="transition ease-in duration-150"
  690 + x-transition:leave-start="opacity-100"
  691 + x-transition:leave-end="opacity-0"
  692 + @click.away="closeNotificationsMenu"
  693 + @keydown.escape="closeNotificationsMenu"
  694 + class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:text-gray-300 dark:border-gray-700 dark:bg-gray-700"
  695 + >
  696 + <li class="flex">
  697 + <a
  698 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  699 + href="#"
  700 + >
  701 + <span>Messages</span>
  702 + <span
  703 + class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600"
  704 + >
  705 + 13
  706 + </span>
  707 + </a>
  708 + </li>
  709 + <li class="flex">
  710 + <a
  711 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  712 + href="#"
  713 + >
  714 + <span>Sales</span>
  715 + <span
  716 + class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600"
  717 + >
  718 + 2
  719 + </span>
  720 + </a>
  721 + </li>
  722 + <li class="flex">
  723 + <a
  724 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  725 + href="#"
  726 + >
  727 + <span>Alerts</span>
  728 + </a>
  729 + </li>
  730 + </ul>
  731 + </template>
  732 + </li>
  733 + <!-- Profile menu -->
  734 + <li class="relative">
  735 + <button
  736 + class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none"
  737 + @click="toggleProfileMenu"
  738 + @keydown.escape="closeProfileMenu"
  739 + aria-label="Account"
  740 + aria-haspopup="true"
  741 + >
  742 + <img
  743 + class="object-cover w-8 h-8 rounded-full"
  744 + src="https://images.unsplash.com/photo-1502378735452-bc7d86632805?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&s=aa3a807e1bbdfd4364d1f449eaa96d82"
  745 + alt=""
  746 + aria-hidden="true"
  747 + />
  748 + </button>
  749 + <template x-if="isProfileMenuOpen">
  750 + <ul
  751 + x-transition:leave="transition ease-in duration-150"
  752 + x-transition:leave-start="opacity-100"
  753 + x-transition:leave-end="opacity-0"
  754 + @click.away="closeProfileMenu"
  755 + @keydown.escape="closeProfileMenu"
  756 + class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:border-gray-700 dark:text-gray-300 dark:bg-gray-700"
  757 + aria-label="submenu"
  758 + >
  759 + <li class="flex">
  760 + <a
  761 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  762 + href="#"
  763 + >
  764 + <svg
  765 + class="w-4 h-4 mr-3"
  766 + aria-hidden="true"
  767 + fill="none"
  768 + stroke-linecap="round"
  769 + stroke-linejoin="round"
  770 + stroke-width="2"
  771 + viewBox="0 0 24 24"
  772 + stroke="currentColor"
  773 + >
  774 + <path
  775 + d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"
  776 + ></path>
  777 + </svg>
  778 + <span>Profile</span>
  779 + </a>
  780 + </li>
  781 + <li class="flex">
  782 + <a
  783 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  784 + href="#"
  785 + >
  786 + <svg
  787 + class="w-4 h-4 mr-3"
  788 + aria-hidden="true"
  789 + fill="none"
  790 + stroke-linecap="round"
  791 + stroke-linejoin="round"
  792 + stroke-width="2"
  793 + viewBox="0 0 24 24"
  794 + stroke="currentColor"
  795 + >
  796 + <path
  797 + d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"
  798 + ></path>
  799 + <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
  800 + </svg>
  801 + <span>Settings</span>
  802 + </a>
  803 + </li>
  804 + <li class="flex">
  805 + <a
  806 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  807 + href="#"
  808 + >
  809 + <svg
  810 + class="w-4 h-4 mr-3"
  811 + aria-hidden="true"
  812 + fill="none"
  813 + stroke-linecap="round"
  814 + stroke-linejoin="round"
  815 + stroke-width="2"
  816 + viewBox="0 0 24 24"
  817 + stroke="currentColor"
  818 + >
  819 + <path
  820 + d="M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1"
  821 + ></path>
  822 + </svg>
  823 + <span>Log out</span>
  824 + </a>
  825 + </li>
  826 + </ul>
  827 + </template>
  828 + </li>
  829 + </ul>
  830 + </div>
  831 + </header>
  832 + <main class="h-full overflow-y-auto">
  833 + <div class="container px-6 mx-auto grid">
  834 + <h2
  835 + class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"
  836 + >
  837 + Dashboard
  838 + </h2>
  839 + <!-- CTA -->
  840 + <a
  841 + class="flex items-center justify-between p-4 mb-8 text-sm font-semibold text-purple-100 bg-purple-600 rounded-lg shadow-md focus:outline-none focus:shadow-outline-purple"
  842 + href="https://github.com/estevanmaito/windmill-dashboard"
  843 + >
  844 + <div class="flex items-center">
  845 + <svg
  846 + class="w-5 h-5 mr-2"
  847 + fill="currentColor"
  848 + viewBox="0 0 20 20"
  849 + >
  850 + <path
  851 + d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"
  852 + ></path>
  853 + </svg>
  854 + <span>Star this project on GitHub</span>
  855 + </div>
  856 + <span>View more &RightArrow;</span>
  857 + </a>
  858 + <!-- Cards -->
  859 + <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4">
  860 + <!-- Card -->
  861 + <div
  862 + class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
  863 + >
  864 + <div
  865 + class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500"
  866 + >
  867 + <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
  868 + <path
  869 + d="M13 6a3 3 0 11-6 0 3 3 0 016 0zM18 8a2 2 0 11-4 0 2 2 0 014 0zM14 15a4 4 0 00-8 0v3h8v-3zM6 8a2 2 0 11-4 0 2 2 0 014 0zM16 18v-3a5.972 5.972 0 00-.75-2.906A3.005 3.005 0 0119 15v3h-3zM4.75 12.094A5.973 5.973 0 004 15v3H1v-3a3 3 0 013.75-2.906z"
  870 + ></path>
  871 + </svg>
  872 + </div>
  873 + <div>
  874 + <p
  875 + class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
  876 + >
  877 + Total clients
  878 + </p>
  879 + <p
  880 + class="text-lg font-semibold text-gray-700 dark:text-gray-200"
  881 + >
  882 + 6389
  883 + </p>
  884 + </div>
  885 + </div>
  886 + <!-- Card -->
  887 + <div
  888 + class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
  889 + >
  890 + <div
  891 + class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500"
  892 + >
  893 + <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
  894 + <path
  895 + fill-rule="evenodd"
  896 + d="M4 4a2 2 0 00-2 2v4a2 2 0 002 2V6h10a2 2 0 00-2-2H4zm2 6a2 2 0 012-2h8a2 2 0 012 2v4a2 2 0 01-2 2H8a2 2 0 01-2-2v-4zm6 4a2 2 0 100-4 2 2 0 000 4z"
  897 + clip-rule="evenodd"
  898 + ></path>
  899 + </svg>
  900 + </div>
  901 + <div>
  902 + <p
  903 + class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
  904 + >
  905 + Account balance
  906 + </p>
  907 + <p
  908 + class="text-lg font-semibold text-gray-700 dark:text-gray-200"
  909 + >
  910 + $ 46,760.89
  911 + </p>
  912 + </div>
  913 + </div>
  914 + <!-- Card -->
  915 + <div
  916 + class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
  917 + >
  918 + <div
  919 + class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500"
  920 + >
  921 + <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
  922 + <path
  923 + d="M3 1a1 1 0 000 2h1.22l.305 1.222a.997.997 0 00.01.042l1.358 5.43-.893.892C3.74 11.846 4.632 14 6.414 14H15a1 1 0 000-2H6.414l1-1H14a1 1 0 00.894-.553l3-6A1 1 0 0017 3H6.28l-.31-1.243A1 1 0 005 1H3zM16 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM6.5 18a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"
  924 + ></path>
  925 + </svg>
  926 + </div>
  927 + <div>
  928 + <p
  929 + class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
  930 + >
  931 + New sales
  932 + </p>
  933 + <p
  934 + class="text-lg font-semibold text-gray-700 dark:text-gray-200"
  935 + >
  936 + 376
  937 + </p>
  938 + </div>
  939 + </div>
  940 + <!-- Card -->
  941 + <div
  942 + class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
  943 + >
  944 + <div
  945 + class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500"
  946 + >
  947 + <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
  948 + <path
  949 + fill-rule="evenodd"
  950 + d="M18 5v8a2 2 0 01-2 2h-5l-5 4v-4H4a2 2 0 01-2-2V5a2 2 0 012-2h12a2 2 0 012 2zM7 8H5v2h2V8zm2 0h2v2H9V8zm6 0h-2v2h2V8z"
  951 + clip-rule="evenodd"
  952 + ></path>
  953 + </svg>
  954 + </div>
  955 + <div>
  956 + <p
  957 + class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
  958 + >
  959 + Pending contacts
  960 + </p>
  961 + <p
  962 + class="text-lg font-semibold text-gray-700 dark:text-gray-200"
  963 + >
  964 + 35
  965 + </p>
  966 + </div>
  967 + </div>
  968 + </div>
  969 +
  970 + <!-- New Table -->
  971 + <div class="w-full overflow-hidden rounded-lg shadow-xs">
  972 + <div class="w-full overflow-x-auto">
  973 + <table class="w-full whitespace-no-wrap">
  974 + <thead>
  975 + <tr
  976 + class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800"
  977 + >
  978 + <th class="px-4 py-3">Client</th>
  979 + <th class="px-4 py-3">Amount</th>
  980 + <th class="px-4 py-3">Status</th>
  981 + <th class="px-4 py-3">Date</th>
  982 + </tr>
  983 + </thead>
  984 + <tbody
  985 + class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"
  986 + >
  987 + <tr class="text-gray-700 dark:text-gray-400">
  988 + <td class="px-4 py-3">
  989 + <div class="flex items-center text-sm">
  990 + <!-- Avatar with inset shadow -->
  991 + <div
  992 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  993 + >
  994 + <img
  995 + class="object-cover w-full h-full rounded-full"
  996 + src="https://images.unsplash.com/flagged/photo-1570612861542-284f4c12e75f?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
  997 + alt=""
  998 + loading="lazy"
  999 + />
  1000 + <div
  1001 + class="absolute inset-0 rounded-full shadow-inner"
  1002 + aria-hidden="true"
  1003 + ></div>
  1004 + </div>
  1005 + <div>
  1006 + <p class="font-semibold">Hans Burger</p>
  1007 + <p class="text-xs text-gray-600 dark:text-gray-400">
  1008 + 10x Developer
  1009 + </p>
  1010 + </div>
  1011 + </div>
  1012 + </td>
  1013 + <td class="px-4 py-3 text-sm">
  1014 + $ 863.45
  1015 + </td>
  1016 + <td class="px-4 py-3 text-xs">
  1017 + <span
  1018 + class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
  1019 + >
  1020 + Approved
  1021 + </span>
  1022 + </td>
  1023 + <td class="px-4 py-3 text-sm">
  1024 + 6/10/2020
  1025 + </td>
  1026 + </tr>
  1027 +
  1028 + <tr class="text-gray-700 dark:text-gray-400">
  1029 + <td class="px-4 py-3">
  1030 + <div class="flex items-center text-sm">
  1031 + <!-- Avatar with inset shadow -->
  1032 + <div
  1033 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  1034 + >
  1035 + <img
  1036 + class="object-cover w-full h-full rounded-full"
  1037 + src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&facepad=3&fit=facearea&s=707b9c33066bf8808c934c8ab394dff6"
  1038 + alt=""
  1039 + loading="lazy"
  1040 + />
  1041 + <div
  1042 + class="absolute inset-0 rounded-full shadow-inner"
  1043 + aria-hidden="true"
  1044 + ></div>
  1045 + </div>
  1046 + <div>
  1047 + <p class="font-semibold">Jolina Angelie</p>
  1048 + <p class="text-xs text-gray-600 dark:text-gray-400">
  1049 + Unemployed
  1050 + </p>
  1051 + </div>
  1052 + </div>
  1053 + </td>
  1054 + <td class="px-4 py-3 text-sm">
  1055 + $ 369.95
  1056 + </td>
  1057 + <td class="px-4 py-3 text-xs">
  1058 + <span
  1059 + class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"
  1060 + >
  1061 + Pending
  1062 + </span>
  1063 + </td>
  1064 + <td class="px-4 py-3 text-sm">
  1065 + 6/10/2020
  1066 + </td>
  1067 + </tr>
  1068 +
  1069 + <tr class="text-gray-700 dark:text-gray-400">
  1070 + <td class="px-4 py-3">
  1071 + <div class="flex items-center text-sm">
  1072 + <!-- Avatar with inset shadow -->
  1073 + <div
  1074 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  1075 + >
  1076 + <img
  1077 + class="object-cover w-full h-full rounded-full"
  1078 + src="https://images.unsplash.com/photo-1551069613-1904dbdcda11?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
  1079 + alt=""
  1080 + loading="lazy"
  1081 + />
  1082 + <div
  1083 + class="absolute inset-0 rounded-full shadow-inner"
  1084 + aria-hidden="true"
  1085 + ></div>
  1086 + </div>
  1087 + <div>
  1088 + <p class="font-semibold">Sarah Curry</p>
  1089 + <p class="text-xs text-gray-600 dark:text-gray-400">
  1090 + Designer
  1091 + </p>
  1092 + </div>
  1093 + </div>
  1094 + </td>
  1095 + <td class="px-4 py-3 text-sm">
  1096 + $ 86.00
  1097 + </td>
  1098 + <td class="px-4 py-3 text-xs">
  1099 + <span
  1100 + class="px-2 py-1 font-semibold leading-tight text-red-700 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-700"
  1101 + >
  1102 + Denied
  1103 + </span>
  1104 + </td>
  1105 + <td class="px-4 py-3 text-sm">
  1106 + 6/10/2020
  1107 + </td>
  1108 + </tr>
  1109 +
  1110 + <tr class="text-gray-700 dark:text-gray-400">
  1111 + <td class="px-4 py-3">
  1112 + <div class="flex items-center text-sm">
  1113 + <!-- Avatar with inset shadow -->
  1114 + <div
  1115 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  1116 + >
  1117 + <img
  1118 + class="object-cover w-full h-full rounded-full"
  1119 + src="https://images.unsplash.com/photo-1551006917-3b4c078c47c9?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
  1120 + alt=""
  1121 + loading="lazy"
  1122 + />
  1123 + <div
  1124 + class="absolute inset-0 rounded-full shadow-inner"
  1125 + aria-hidden="true"
  1126 + ></div>
  1127 + </div>
  1128 + <div>
  1129 + <p class="font-semibold">Rulia Joberts</p>
  1130 + <p class="text-xs text-gray-600 dark:text-gray-400">
  1131 + Actress
  1132 + </p>
  1133 + </div>
  1134 + </div>
  1135 + </td>
  1136 + <td class="px-4 py-3 text-sm">
  1137 + $ 1276.45
  1138 + </td>
  1139 + <td class="px-4 py-3 text-xs">
  1140 + <span
  1141 + class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
  1142 + >
  1143 + Approved
  1144 + </span>
  1145 + </td>
  1146 + <td class="px-4 py-3 text-sm">
  1147 + 6/10/2020
  1148 + </td>
  1149 + </tr>
  1150 +
  1151 + <tr class="text-gray-700 dark:text-gray-400">
  1152 + <td class="px-4 py-3">
  1153 + <div class="flex items-center text-sm">
  1154 + <!-- Avatar with inset shadow -->
  1155 + <div
  1156 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  1157 + >
  1158 + <img
  1159 + class="object-cover w-full h-full rounded-full"
  1160 + src="https://images.unsplash.com/photo-1546456073-6712f79251bb?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
  1161 + alt=""
  1162 + loading="lazy"
  1163 + />
  1164 + <div
  1165 + class="absolute inset-0 rounded-full shadow-inner"
  1166 + aria-hidden="true"
  1167 + ></div>
  1168 + </div>
  1169 + <div>
  1170 + <p class="font-semibold">Wenzel Dashington</p>
  1171 + <p class="text-xs text-gray-600 dark:text-gray-400">
  1172 + Actor
  1173 + </p>
  1174 + </div>
  1175 + </div>
  1176 + </td>
  1177 + <td class="px-4 py-3 text-sm">
  1178 + $ 863.45
  1179 + </td>
  1180 + <td class="px-4 py-3 text-xs">
  1181 + <span
  1182 + class="px-2 py-1 font-semibold leading-tight text-gray-700 bg-gray-100 rounded-full dark:text-gray-100 dark:bg-gray-700"
  1183 + >
  1184 + Expired
  1185 + </span>
  1186 + </td>
  1187 + <td class="px-4 py-3 text-sm">
  1188 + 6/10/2020
  1189 + </td>
  1190 + </tr>
  1191 +
  1192 + <tr class="text-gray-700 dark:text-gray-400">
  1193 + <td class="px-4 py-3">
  1194 + <div class="flex items-center text-sm">
  1195 + <!-- Avatar with inset shadow -->
  1196 + <div
  1197 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  1198 + >
  1199 + <img
  1200 + class="object-cover w-full h-full rounded-full"
  1201 + src="https://images.unsplash.com/photo-1502720705749-871143f0e671?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&s=b8377ca9f985d80264279f277f3a67f5"
  1202 + alt=""
  1203 + loading="lazy"
  1204 + />
  1205 + <div
  1206 + class="absolute inset-0 rounded-full shadow-inner"
  1207 + aria-hidden="true"
  1208 + ></div>
  1209 + </div>
  1210 + <div>
  1211 + <p class="font-semibold">Dave Li</p>
  1212 + <p class="text-xs text-gray-600 dark:text-gray-400">
  1213 + Influencer
  1214 + </p>
  1215 + </div>
  1216 + </div>
  1217 + </td>
  1218 + <td class="px-4 py-3 text-sm">
  1219 + $ 863.45
  1220 + </td>
  1221 + <td class="px-4 py-3 text-xs">
  1222 + <span
  1223 + class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
  1224 + >
  1225 + Approved
  1226 + </span>
  1227 + </td>
  1228 + <td class="px-4 py-3 text-sm">
  1229 + 6/10/2020
  1230 + </td>
  1231 + </tr>
  1232 +
  1233 + <tr class="text-gray-700 dark:text-gray-400">
  1234 + <td class="px-4 py-3">
  1235 + <div class="flex items-center text-sm">
  1236 + <!-- Avatar with inset shadow -->
  1237 + <div
  1238 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  1239 + >
  1240 + <img
  1241 + class="object-cover w-full h-full rounded-full"
  1242 + src="https://images.unsplash.com/photo-1531746020798-e6953c6e8e04?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
  1243 + alt=""
  1244 + loading="lazy"
  1245 + />
  1246 + <div
  1247 + class="absolute inset-0 rounded-full shadow-inner"
  1248 + aria-hidden="true"
  1249 + ></div>
  1250 + </div>
  1251 + <div>
  1252 + <p class="font-semibold">Maria Ramovic</p>
  1253 + <p class="text-xs text-gray-600 dark:text-gray-400">
  1254 + Runner
  1255 + </p>
  1256 + </div>
  1257 + </div>
  1258 + </td>
  1259 + <td class="px-4 py-3 text-sm">
  1260 + $ 863.45
  1261 + </td>
  1262 + <td class="px-4 py-3 text-xs">
  1263 + <span
  1264 + class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
  1265 + >
  1266 + Approved
  1267 + </span>
  1268 + </td>
  1269 + <td class="px-4 py-3 text-sm">
  1270 + 6/10/2020
  1271 + </td>
  1272 + </tr>
  1273 +
  1274 + <tr class="text-gray-700 dark:text-gray-400">
  1275 + <td class="px-4 py-3">
  1276 + <div class="flex items-center text-sm">
  1277 + <!-- Avatar with inset shadow -->
  1278 + <div
  1279 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  1280 + >
  1281 + <img
  1282 + class="object-cover w-full h-full rounded-full"
  1283 + src="https://images.unsplash.com/photo-1566411520896-01e7ca4726af?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
  1284 + alt=""
  1285 + loading="lazy"
  1286 + />
  1287 + <div
  1288 + class="absolute inset-0 rounded-full shadow-inner"
  1289 + aria-hidden="true"
  1290 + ></div>
  1291 + </div>
  1292 + <div>
  1293 + <p class="font-semibold">Hitney Wouston</p>
  1294 + <p class="text-xs text-gray-600 dark:text-gray-400">
  1295 + Singer
  1296 + </p>
  1297 + </div>
  1298 + </div>
  1299 + </td>
  1300 + <td class="px-4 py-3 text-sm">
  1301 + $ 863.45
  1302 + </td>
  1303 + <td class="px-4 py-3 text-xs">
  1304 + <span
  1305 + class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
  1306 + >
  1307 + Approved
  1308 + </span>
  1309 + </td>
  1310 + <td class="px-4 py-3 text-sm">
  1311 + 6/10/2020
  1312 + </td>
  1313 + </tr>
  1314 +
  1315 + <tr class="text-gray-700 dark:text-gray-400">
  1316 + <td class="px-4 py-3">
  1317 + <div class="flex items-center text-sm">
  1318 + <!-- Avatar with inset shadow -->
  1319 + <div
  1320 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  1321 + >
  1322 + <img
  1323 + class="object-cover w-full h-full rounded-full"
  1324 + src="https://images.unsplash.com/flagged/photo-1570612861542-284f4c12e75f?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
  1325 + alt=""
  1326 + loading="lazy"
  1327 + />
  1328 + <div
  1329 + class="absolute inset-0 rounded-full shadow-inner"
  1330 + aria-hidden="true"
  1331 + ></div>
  1332 + </div>
  1333 + <div>
  1334 + <p class="font-semibold">Hans Burger</p>
  1335 + <p class="text-xs text-gray-600 dark:text-gray-400">
  1336 + 10x Developer
  1337 + </p>
  1338 + </div>
  1339 + </div>
  1340 + </td>
  1341 + <td class="px-4 py-3 text-sm">
  1342 + $ 863.45
  1343 + </td>
  1344 + <td class="px-4 py-3 text-xs">
  1345 + <span
  1346 + class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
  1347 + >
  1348 + Approved
  1349 + </span>
  1350 + </td>
  1351 + <td class="px-4 py-3 text-sm">
  1352 + 6/10/2020
  1353 + </td>
  1354 + </tr>
  1355 + </tbody>
  1356 + </table>
  1357 + </div>
  1358 + <div
  1359 + class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800"
  1360 + >
  1361 + <span class="flex items-center col-span-3">
  1362 + Showing 21-30 of 100
  1363 + </span>
  1364 + <span class="col-span-2"></span>
  1365 + <!-- Pagination -->
  1366 + <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end">
  1367 + <nav aria-label="Table navigation">
  1368 + <ul class="inline-flex items-center">
  1369 + <li>
  1370 + <button
  1371 + class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple"
  1372 + aria-label="Previous"
  1373 + >
  1374 + <svg
  1375 + aria-hidden="true"
  1376 + class="w-4 h-4 fill-current"
  1377 + viewBox="0 0 20 20"
  1378 + >
  1379 + <path
  1380 + d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z"
  1381 + clip-rule="evenodd"
  1382 + fill-rule="evenodd"
  1383 + ></path>
  1384 + </svg>
  1385 + </button>
  1386 + </li>
  1387 + <li>
  1388 + <button
  1389 + class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
  1390 + >
  1391 + 1
  1392 + </button>
  1393 + </li>
  1394 + <li>
  1395 + <button
  1396 + class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
  1397 + >
  1398 + 2
  1399 + </button>
  1400 + </li>
  1401 + <li>
  1402 + <button
  1403 + class="px-3 py-1 text-white transition-colors duration-150 bg-purple-600 border border-r-0 border-purple-600 rounded-md focus:outline-none focus:shadow-outline-purple"
  1404 + >
  1405 + 3
  1406 + </button>
  1407 + </li>
  1408 + <li>
  1409 + <button
  1410 + class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
  1411 + >
  1412 + 4
  1413 + </button>
  1414 + </li>
  1415 + <li>
  1416 + <span class="px-3 py-1">...</span>
  1417 + </li>
  1418 + <li>
  1419 + <button
  1420 + class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
  1421 + >
  1422 + 8
  1423 + </button>
  1424 + </li>
  1425 + <li>
  1426 + <button
  1427 + class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
  1428 + >
  1429 + 9
  1430 + </button>
  1431 + </li>
  1432 + <li>
  1433 + <button
  1434 + class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple"
  1435 + aria-label="Next"
  1436 + >
  1437 + <svg
  1438 + class="w-4 h-4 fill-current"
  1439 + aria-hidden="true"
  1440 + viewBox="0 0 20 20"
  1441 + >
  1442 + <path
  1443 + d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
  1444 + clip-rule="evenodd"
  1445 + fill-rule="evenodd"
  1446 + ></path>
  1447 + </svg>
  1448 + </button>
  1449 + </li>
  1450 + </ul>
  1451 + </nav>
  1452 + </span>
  1453 + </div>
  1454 + </div>
  1455 +
  1456 + <!-- Charts -->
  1457 + <h2
  1458 + class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"
  1459 + >
  1460 + Charts
  1461 + </h2>
  1462 + <div class="grid gap-6 mb-8 md:grid-cols-2">
  1463 + <div
  1464 + class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
  1465 + >
  1466 + <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300">
  1467 + Revenue
  1468 + </h4>
  1469 + <canvas id="pie"></canvas>
  1470 + <div
  1471 + class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400"
  1472 + >
  1473 + <!-- Chart legend -->
  1474 + <div class="flex items-center">
  1475 + <span
  1476 + class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full"
  1477 + ></span>
  1478 + <span>Shirts</span>
  1479 + </div>
  1480 + <div class="flex items-center">
  1481 + <span
  1482 + class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full"
  1483 + ></span>
  1484 + <span>Shoes</span>
  1485 + </div>
  1486 + <div class="flex items-center">
  1487 + <span
  1488 + class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full"
  1489 + ></span>
  1490 + <span>Bags</span>
  1491 + </div>
  1492 + </div>
  1493 + </div>
  1494 + <div
  1495 + class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
  1496 + >
  1497 + <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300">
  1498 + Traffic
  1499 + </h4>
  1500 + <canvas id="line"></canvas>
  1501 + <div
  1502 + class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400"
  1503 + >
  1504 + <!-- Chart legend -->
  1505 + <div class="flex items-center">
  1506 + <span
  1507 + class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full"
  1508 + ></span>
  1509 + <span>Organic</span>
  1510 + </div>
  1511 + <div class="flex items-center">
  1512 + <span
  1513 + class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full"
  1514 + ></span>
  1515 + <span>Paid</span>
  1516 + </div>
  1517 + </div>
  1518 + </div>
  1519 + </div>
  1520 + </div>
  1521 + </main>
  1522 + </div>
  1523 + </div>
  1524 + </body>
  1525 +</html>
html/public/modals.html
... ... @@ -0,0 +1,967 @@
  1 +<!DOCTYPE html>
  2 +<html :class="{ 'theme-dark': dark }" x-data="data()" lang="en">
  3 + <head>
  4 + <meta charset="UTF-8" />
  5 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6 + <title>Modals - Windmill Dashboard</title>
  7 + <link
  8 + href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"
  9 + rel="stylesheet"
  10 + />
  11 + <link rel="stylesheet" href="./assets/css/tailwind.output.css" />
  12 + <script
  13 + src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js"
  14 + defer
  15 + ></script>
  16 + <script src="./assets/js/init-alpine.js"></script>
  17 + <!-- You need focus-trap.js to make the modal accessible -->
  18 + <script src="./assets/js/focus-trap.js" defer></script>
  19 + </head>
  20 + <body>
  21 + <div
  22 + class="flex h-screen bg-gray-50 dark:bg-gray-900"
  23 + :class="{ 'overflow-hidden': isSideMenuOpen}"
  24 + >
  25 + <!-- Desktop sidebar -->
  26 + <aside
  27 + class="z-20 flex-shrink-0 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block"
  28 + >
  29 + <div class="py-4 text-gray-500 dark:text-gray-400">
  30 + <a
  31 + class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
  32 + href="#"
  33 + >
  34 + Windmill
  35 + </a>
  36 + <ul class="mt-6">
  37 + <li class="relative px-6 py-3">
  38 + <a
  39 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  40 + href="index.html"
  41 + >
  42 + <svg
  43 + class="w-5 h-5"
  44 + aria-hidden="true"
  45 + fill="none"
  46 + stroke-linecap="round"
  47 + stroke-linejoin="round"
  48 + stroke-width="2"
  49 + viewBox="0 0 24 24"
  50 + stroke="currentColor"
  51 + >
  52 + <path
  53 + d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"
  54 + ></path>
  55 + </svg>
  56 + <span class="ml-4">Dashboard</span>
  57 + </a>
  58 + </li>
  59 + </ul>
  60 + <ul>
  61 + <li class="relative px-6 py-3">
  62 + <a
  63 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  64 + href="forms.html"
  65 + >
  66 + <svg
  67 + class="w-5 h-5"
  68 + aria-hidden="true"
  69 + fill="none"
  70 + stroke-linecap="round"
  71 + stroke-linejoin="round"
  72 + stroke-width="2"
  73 + viewBox="0 0 24 24"
  74 + stroke="currentColor"
  75 + >
  76 + <path
  77 + d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
  78 + ></path>
  79 + </svg>
  80 + <span class="ml-4">Forms</span>
  81 + </a>
  82 + </li>
  83 + <li class="relative px-6 py-3">
  84 + <a
  85 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  86 + href="cards.html"
  87 + >
  88 + <svg
  89 + class="w-5 h-5"
  90 + aria-hidden="true"
  91 + fill="none"
  92 + stroke-linecap="round"
  93 + stroke-linejoin="round"
  94 + stroke-width="2"
  95 + viewBox="0 0 24 24"
  96 + stroke="currentColor"
  97 + >
  98 + <path
  99 + d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"
  100 + ></path>
  101 + </svg>
  102 + <span class="ml-4">Cards</span>
  103 + </a>
  104 + </li>
  105 + <li class="relative px-6 py-3">
  106 + <a
  107 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  108 + href="charts.html"
  109 + >
  110 + <svg
  111 + class="w-5 h-5"
  112 + aria-hidden="true"
  113 + fill="none"
  114 + stroke-linecap="round"
  115 + stroke-linejoin="round"
  116 + stroke-width="2"
  117 + viewBox="0 0 24 24"
  118 + stroke="currentColor"
  119 + >
  120 + <path
  121 + d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
  122 + ></path>
  123 + <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
  124 + </svg>
  125 + <span class="ml-4">Charts</span>
  126 + </a>
  127 + </li>
  128 + <li class="relative px-6 py-3">
  129 + <a
  130 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  131 + href="buttons.html"
  132 + >
  133 + <svg
  134 + class="w-5 h-5"
  135 + aria-hidden="true"
  136 + fill="none"
  137 + stroke-linecap="round"
  138 + stroke-linejoin="round"
  139 + stroke-width="2"
  140 + viewBox="0 0 24 24"
  141 + stroke="currentColor"
  142 + >
  143 + <path
  144 + d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"
  145 + ></path>
  146 + </svg>
  147 + <span class="ml-4">Buttons</span>
  148 + </a>
  149 + </li>
  150 + <li class="relative px-6 py-3">
  151 + <span
  152 + class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
  153 + aria-hidden="true"
  154 + ></span>
  155 + <a
  156 + class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100"
  157 + href="modals.html"
  158 + >
  159 + <svg
  160 + class="w-5 h-5"
  161 + aria-hidden="true"
  162 + fill="none"
  163 + stroke-linecap="round"
  164 + stroke-linejoin="round"
  165 + stroke-width="2"
  166 + viewBox="0 0 24 24"
  167 + stroke="currentColor"
  168 + >
  169 + <path
  170 + d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"
  171 + ></path>
  172 + </svg>
  173 + <span class="ml-4">Modals</span>
  174 + </a>
  175 + </li>
  176 + <li class="relative px-6 py-3">
  177 + <a
  178 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  179 + href="tables.html"
  180 + >
  181 + <svg
  182 + class="w-5 h-5"
  183 + aria-hidden="true"
  184 + fill="none"
  185 + stroke-linecap="round"
  186 + stroke-linejoin="round"
  187 + stroke-width="2"
  188 + viewBox="0 0 24 24"
  189 + stroke="currentColor"
  190 + >
  191 + <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
  192 + </svg>
  193 + <span class="ml-4">Tables</span>
  194 + </a>
  195 + </li>
  196 + <li class="relative px-6 py-3">
  197 + <button
  198 + class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  199 + @click="togglePagesMenu"
  200 + aria-haspopup="true"
  201 + >
  202 + <span class="inline-flex items-center">
  203 + <svg
  204 + class="w-5 h-5"
  205 + aria-hidden="true"
  206 + fill="none"
  207 + stroke-linecap="round"
  208 + stroke-linejoin="round"
  209 + stroke-width="2"
  210 + viewBox="0 0 24 24"
  211 + stroke="currentColor"
  212 + >
  213 + <path
  214 + d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"
  215 + ></path>
  216 + </svg>
  217 + <span class="ml-4">Pages</span>
  218 + </span>
  219 + <svg
  220 + class="w-4 h-4"
  221 + aria-hidden="true"
  222 + fill="currentColor"
  223 + viewBox="0 0 20 20"
  224 + >
  225 + <path
  226 + fill-rule="evenodd"
  227 + d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
  228 + clip-rule="evenodd"
  229 + ></path>
  230 + </svg>
  231 + </button>
  232 + <template x-if="isPagesMenuOpen">
  233 + <ul
  234 + x-transition:enter="transition-all ease-in-out duration-300"
  235 + x-transition:enter-start="opacity-25 max-h-0"
  236 + x-transition:enter-end="opacity-100 max-h-xl"
  237 + x-transition:leave="transition-all ease-in-out duration-300"
  238 + x-transition:leave-start="opacity-100 max-h-xl"
  239 + x-transition:leave-end="opacity-0 max-h-0"
  240 + class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900"
  241 + aria-label="submenu"
  242 + >
  243 + <li
  244 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  245 + >
  246 + <a class="w-full" href="pages/login.html">Login</a>
  247 + </li>
  248 + <li
  249 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  250 + >
  251 + <a class="w-full" href="pages/create-account.html">
  252 + Create account
  253 + </a>
  254 + </li>
  255 + <li
  256 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  257 + >
  258 + <a class="w-full" href="pages/forgot-password.html">
  259 + Forgot password
  260 + </a>
  261 + </li>
  262 + <li
  263 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  264 + >
  265 + <a class="w-full" href="pages/404.html">404</a>
  266 + </li>
  267 + <li
  268 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  269 + >
  270 + <a class="w-full" href="pages/blank.html">Blank</a>
  271 + </li>
  272 + </ul>
  273 + </template>
  274 + </li>
  275 + </ul>
  276 + <div class="px-6 my-6">
  277 + <button
  278 + class="flex items-center justify-between w-full px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  279 + >
  280 + Create account
  281 + <span class="ml-2" aria-hidden="true">+</span>
  282 + </button>
  283 + </div>
  284 + </div>
  285 + </aside>
  286 + <!-- Mobile sidebar -->
  287 + <!-- Backdrop -->
  288 + <div
  289 + x-show="isSideMenuOpen"
  290 + x-transition:enter="transition ease-in-out duration-150"
  291 + x-transition:enter-start="opacity-0"
  292 + x-transition:enter-end="opacity-100"
  293 + x-transition:leave="transition ease-in-out duration-150"
  294 + x-transition:leave-start="opacity-100"
  295 + x-transition:leave-end="opacity-0"
  296 + class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center"
  297 + ></div>
  298 + <aside
  299 + class="fixed inset-y-0 z-20 flex-shrink-0 w-64 mt-16 overflow-y-auto bg-white dark:bg-gray-800 md:hidden"
  300 + x-show="isSideMenuOpen"
  301 + x-transition:enter="transition ease-in-out duration-150"
  302 + x-transition:enter-start="opacity-0 transform -translate-x-20"
  303 + x-transition:enter-end="opacity-100"
  304 + x-transition:leave="transition ease-in-out duration-150"
  305 + x-transition:leave-start="opacity-100"
  306 + x-transition:leave-end="opacity-0 transform -translate-x-20"
  307 + @click.away="closeSideMenu"
  308 + @keydown.escape="closeSideMenu"
  309 + >
  310 + <div class="py-4 text-gray-500 dark:text-gray-400">
  311 + <a
  312 + class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
  313 + href="#"
  314 + >
  315 + Windmill
  316 + </a>
  317 + <ul class="mt-6">
  318 + <li class="relative px-6 py-3">
  319 + <a
  320 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  321 + href="index.html"
  322 + >
  323 + <svg
  324 + class="w-5 h-5"
  325 + aria-hidden="true"
  326 + fill="none"
  327 + stroke-linecap="round"
  328 + stroke-linejoin="round"
  329 + stroke-width="2"
  330 + viewBox="0 0 24 24"
  331 + stroke="currentColor"
  332 + >
  333 + <path
  334 + d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"
  335 + ></path>
  336 + </svg>
  337 + <span class="ml-4">Dashboard</span>
  338 + </a>
  339 + </li>
  340 + </ul>
  341 + <ul>
  342 + <li class="relative px-6 py-3">
  343 + <a
  344 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  345 + href="forms.html"
  346 + >
  347 + <svg
  348 + class="w-5 h-5"
  349 + aria-hidden="true"
  350 + fill="none"
  351 + stroke-linecap="round"
  352 + stroke-linejoin="round"
  353 + stroke-width="2"
  354 + viewBox="0 0 24 24"
  355 + stroke="currentColor"
  356 + >
  357 + <path
  358 + d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
  359 + ></path>
  360 + </svg>
  361 + <span class="ml-4">Forms</span>
  362 + </a>
  363 + </li>
  364 + <li class="relative px-6 py-3">
  365 + <a
  366 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  367 + href="cards.html"
  368 + >
  369 + <svg
  370 + class="w-5 h-5"
  371 + aria-hidden="true"
  372 + fill="none"
  373 + stroke-linecap="round"
  374 + stroke-linejoin="round"
  375 + stroke-width="2"
  376 + viewBox="0 0 24 24"
  377 + stroke="currentColor"
  378 + >
  379 + <path
  380 + d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"
  381 + ></path>
  382 + </svg>
  383 + <span class="ml-4">Cards</span>
  384 + </a>
  385 + </li>
  386 + <li class="relative px-6 py-3">
  387 + <a
  388 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  389 + href="charts.html"
  390 + >
  391 + <svg
  392 + class="w-5 h-5"
  393 + aria-hidden="true"
  394 + fill="none"
  395 + stroke-linecap="round"
  396 + stroke-linejoin="round"
  397 + stroke-width="2"
  398 + viewBox="0 0 24 24"
  399 + stroke="currentColor"
  400 + >
  401 + <path
  402 + d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
  403 + ></path>
  404 + <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
  405 + </svg>
  406 + <span class="ml-4">Charts</span>
  407 + </a>
  408 + </li>
  409 + <li class="relative px-6 py-3">
  410 + <a
  411 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  412 + href="buttons.html"
  413 + >
  414 + <svg
  415 + class="w-5 h-5"
  416 + aria-hidden="true"
  417 + fill="none"
  418 + stroke-linecap="round"
  419 + stroke-linejoin="round"
  420 + stroke-width="2"
  421 + viewBox="0 0 24 24"
  422 + stroke="currentColor"
  423 + >
  424 + <path
  425 + d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"
  426 + ></path>
  427 + </svg>
  428 + <span class="ml-4">Buttons</span>
  429 + </a>
  430 + </li>
  431 + <li class="relative px-6 py-3">
  432 + <span
  433 + class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
  434 + aria-hidden="true"
  435 + ></span>
  436 + <a
  437 + class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100"
  438 + href="modals.html"
  439 + >
  440 + <svg
  441 + class="w-5 h-5"
  442 + aria-hidden="true"
  443 + fill="none"
  444 + stroke-linecap="round"
  445 + stroke-linejoin="round"
  446 + stroke-width="2"
  447 + viewBox="0 0 24 24"
  448 + stroke="currentColor"
  449 + >
  450 + <path
  451 + d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"
  452 + ></path>
  453 + </svg>
  454 + <span class="ml-4">Modals</span>
  455 + </a>
  456 + </li>
  457 + <li class="relative px-6 py-3">
  458 + <a
  459 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  460 + href="tables.html"
  461 + >
  462 + <svg
  463 + class="w-5 h-5"
  464 + aria-hidden="true"
  465 + fill="none"
  466 + stroke-linecap="round"
  467 + stroke-linejoin="round"
  468 + stroke-width="2"
  469 + viewBox="0 0 24 24"
  470 + stroke="currentColor"
  471 + >
  472 + <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
  473 + </svg>
  474 + <span class="ml-4">Tables</span>
  475 + </a>
  476 + </li>
  477 + <li class="relative px-6 py-3">
  478 + <button
  479 + class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  480 + @click="togglePagesMenu"
  481 + aria-haspopup="true"
  482 + >
  483 + <span class="inline-flex items-center">
  484 + <svg
  485 + class="w-5 h-5"
  486 + aria-hidden="true"
  487 + fill="none"
  488 + stroke-linecap="round"
  489 + stroke-linejoin="round"
  490 + stroke-width="2"
  491 + viewBox="0 0 24 24"
  492 + stroke="currentColor"
  493 + >
  494 + <path
  495 + d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"
  496 + ></path>
  497 + </svg>
  498 + <span class="ml-4">Pages</span>
  499 + </span>
  500 + <svg
  501 + class="w-4 h-4"
  502 + aria-hidden="true"
  503 + fill="currentColor"
  504 + viewBox="0 0 20 20"
  505 + >
  506 + <path
  507 + fill-rule="evenodd"
  508 + d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
  509 + clip-rule="evenodd"
  510 + ></path>
  511 + </svg>
  512 + </button>
  513 + <template x-if="isPagesMenuOpen">
  514 + <ul
  515 + x-transition:enter="transition-all ease-in-out duration-300"
  516 + x-transition:enter-start="opacity-25 max-h-0"
  517 + x-transition:enter-end="opacity-100 max-h-xl"
  518 + x-transition:leave="transition-all ease-in-out duration-300"
  519 + x-transition:leave-start="opacity-100 max-h-xl"
  520 + x-transition:leave-end="opacity-0 max-h-0"
  521 + class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900"
  522 + aria-label="submenu"
  523 + >
  524 + <li
  525 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  526 + >
  527 + <a class="w-full" href="pages/login.html">Login</a>
  528 + </li>
  529 + <li
  530 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  531 + >
  532 + <a class="w-full" href="pages/create-account.html">
  533 + Create account
  534 + </a>
  535 + </li>
  536 + <li
  537 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  538 + >
  539 + <a class="w-full" href="pages/forgot-password.html">
  540 + Forgot password
  541 + </a>
  542 + </li>
  543 + <li
  544 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  545 + >
  546 + <a class="w-full" href="pages/404.html">404</a>
  547 + </li>
  548 + <li
  549 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  550 + >
  551 + <a class="w-full" href="pages/blank.html">Blank</a>
  552 + </li>
  553 + </ul>
  554 + </template>
  555 + </li>
  556 + </ul>
  557 + <div class="px-6 my-6">
  558 + <button
  559 + class="flex items-center justify-between px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  560 + >
  561 + Create account
  562 + <span class="ml-2" aria-hidden="true">+</span>
  563 + </button>
  564 + </div>
  565 + </div>
  566 + </aside>
  567 + <div class="flex flex-col flex-1">
  568 + <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800">
  569 + <div
  570 + class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300"
  571 + >
  572 + <!-- Mobile hamburger -->
  573 + <button
  574 + class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple"
  575 + @click="toggleSideMenu"
  576 + aria-label="Menu"
  577 + >
  578 + <svg
  579 + class="w-6 h-6"
  580 + aria-hidden="true"
  581 + fill="currentColor"
  582 + viewBox="0 0 20 20"
  583 + >
  584 + <path
  585 + fill-rule="evenodd"
  586 + d="M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z"
  587 + clip-rule="evenodd"
  588 + ></path>
  589 + </svg>
  590 + </button>
  591 + <!-- Search input -->
  592 + <div class="flex justify-center flex-1 lg:mr-32">
  593 + <div
  594 + class="relative w-full max-w-xl mr-6 focus-within:text-purple-500"
  595 + >
  596 + <div class="absolute inset-y-0 flex items-center pl-2">
  597 + <svg
  598 + class="w-4 h-4"
  599 + aria-hidden="true"
  600 + fill="currentColor"
  601 + viewBox="0 0 20 20"
  602 + >
  603 + <path
  604 + fill-rule="evenodd"
  605 + d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z"
  606 + clip-rule="evenodd"
  607 + ></path>
  608 + </svg>
  609 + </div>
  610 + <input
  611 + class="w-full pl-8 pr-2 text-sm text-gray-700 placeholder-gray-600 bg-gray-100 border-0 rounded-md dark:placeholder-gray-500 dark:focus:shadow-outline-gray dark:focus:placeholder-gray-600 dark:bg-gray-700 dark:text-gray-200 focus:placeholder-gray-500 focus:bg-white focus:border-purple-300 focus:outline-none focus:shadow-outline-purple form-input"
  612 + type="text"
  613 + placeholder="Search for projects"
  614 + aria-label="Search"
  615 + />
  616 + </div>
  617 + </div>
  618 + <ul class="flex items-center flex-shrink-0 space-x-6">
  619 + <!-- Theme toggler -->
  620 + <li class="flex">
  621 + <button
  622 + class="rounded-md focus:outline-none focus:shadow-outline-purple"
  623 + @click="toggleTheme"
  624 + aria-label="Toggle color mode"
  625 + >
  626 + <template x-if="!dark">
  627 + <svg
  628 + class="w-5 h-5"
  629 + aria-hidden="true"
  630 + fill="currentColor"
  631 + viewBox="0 0 20 20"
  632 + >
  633 + <path
  634 + d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"
  635 + ></path>
  636 + </svg>
  637 + </template>
  638 + <template x-if="dark">
  639 + <svg
  640 + class="w-5 h-5"
  641 + aria-hidden="true"
  642 + fill="currentColor"
  643 + viewBox="0 0 20 20"
  644 + >
  645 + <path
  646 + fill-rule="evenodd"
  647 + d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z"
  648 + clip-rule="evenodd"
  649 + ></path>
  650 + </svg>
  651 + </template>
  652 + </button>
  653 + </li>
  654 + <!-- Notifications menu -->
  655 + <li class="relative">
  656 + <button
  657 + class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple"
  658 + @click="toggleNotificationsMenu"
  659 + @keydown.escape="closeNotificationsMenu"
  660 + aria-label="Notifications"
  661 + aria-haspopup="true"
  662 + >
  663 + <svg
  664 + class="w-5 h-5"
  665 + aria-hidden="true"
  666 + fill="currentColor"
  667 + viewBox="0 0 20 20"
  668 + >
  669 + <path
  670 + d="M10 2a6 6 0 00-6 6v3.586l-.707.707A1 1 0 004 14h12a1 1 0 00.707-1.707L16 11.586V8a6 6 0 00-6-6zM10 18a3 3 0 01-3-3h6a3 3 0 01-3 3z"
  671 + ></path>
  672 + </svg>
  673 + <!-- Notification badge -->
  674 + <span
  675 + aria-hidden="true"
  676 + class="absolute top-0 right-0 inline-block w-3 h-3 transform translate-x-1 -translate-y-1 bg-red-600 border-2 border-white rounded-full dark:border-gray-800"
  677 + ></span>
  678 + </button>
  679 + <template x-if="isNotificationsMenuOpen">
  680 + <ul
  681 + x-transition:leave="transition ease-in duration-150"
  682 + x-transition:leave-start="opacity-100"
  683 + x-transition:leave-end="opacity-0"
  684 + @click.away="closeNotificationsMenu"
  685 + @keydown.escape="closeNotificationsMenu"
  686 + class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:text-gray-300 dark:border-gray-700 dark:bg-gray-700"
  687 + aria-label="submenu"
  688 + >
  689 + <li class="flex">
  690 + <a
  691 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  692 + href="#"
  693 + >
  694 + <span>Messages</span>
  695 + <span
  696 + class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600"
  697 + >
  698 + 13
  699 + </span>
  700 + </a>
  701 + </li>
  702 + <li class="flex">
  703 + <a
  704 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  705 + href="#"
  706 + >
  707 + <span>Sales</span>
  708 + <span
  709 + class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600"
  710 + >
  711 + 2
  712 + </span>
  713 + </a>
  714 + </li>
  715 + <li class="flex">
  716 + <a
  717 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  718 + href="#"
  719 + >
  720 + <span>Alerts</span>
  721 + </a>
  722 + </li>
  723 + </ul>
  724 + </template>
  725 + </li>
  726 + <!-- Profile menu -->
  727 + <li class="relative">
  728 + <button
  729 + class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none"
  730 + @click="toggleProfileMenu"
  731 + @keydown.escape="closeProfileMenu"
  732 + aria-label="Account"
  733 + aria-haspopup="true"
  734 + >
  735 + <img
  736 + class="object-cover w-8 h-8 rounded-full"
  737 + src="https://images.unsplash.com/photo-1502378735452-bc7d86632805?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&s=aa3a807e1bbdfd4364d1f449eaa96d82"
  738 + alt=""
  739 + aria-hidden="true"
  740 + />
  741 + </button>
  742 + <template x-if="isProfileMenuOpen">
  743 + <ul
  744 + x-transition:leave="transition ease-in duration-150"
  745 + x-transition:leave-start="opacity-100"
  746 + x-transition:leave-end="opacity-0"
  747 + @click.away="closeProfileMenu"
  748 + @keydown.escape="closeProfileMenu"
  749 + class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:border-gray-700 dark:text-gray-300 dark:bg-gray-700"
  750 + aria-label="submenu"
  751 + >
  752 + <li class="flex">
  753 + <a
  754 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  755 + href="#"
  756 + >
  757 + <svg
  758 + class="w-4 h-4 mr-3"
  759 + aria-hidden="true"
  760 + fill="none"
  761 + stroke-linecap="round"
  762 + stroke-linejoin="round"
  763 + stroke-width="2"
  764 + viewBox="0 0 24 24"
  765 + stroke="currentColor"
  766 + >
  767 + <path
  768 + d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"
  769 + ></path>
  770 + </svg>
  771 + <span>Profile</span>
  772 + </a>
  773 + </li>
  774 + <li class="flex">
  775 + <a
  776 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  777 + href="#"
  778 + >
  779 + <svg
  780 + class="w-4 h-4 mr-3"
  781 + aria-hidden="true"
  782 + fill="none"
  783 + stroke-linecap="round"
  784 + stroke-linejoin="round"
  785 + stroke-width="2"
  786 + viewBox="0 0 24 24"
  787 + stroke="currentColor"
  788 + >
  789 + <path
  790 + d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"
  791 + ></path>
  792 + <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
  793 + </svg>
  794 + <span>Settings</span>
  795 + </a>
  796 + </li>
  797 + <li class="flex">
  798 + <a
  799 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  800 + href="#"
  801 + >
  802 + <svg
  803 + class="w-4 h-4 mr-3"
  804 + aria-hidden="true"
  805 + fill="none"
  806 + stroke-linecap="round"
  807 + stroke-linejoin="round"
  808 + stroke-width="2"
  809 + viewBox="0 0 24 24"
  810 + stroke="currentColor"
  811 + >
  812 + <path
  813 + d="M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1"
  814 + ></path>
  815 + </svg>
  816 + <span>Log out</span>
  817 + </a>
  818 + </li>
  819 + </ul>
  820 + </template>
  821 + </li>
  822 + </ul>
  823 + </div>
  824 + </header>
  825 + <main class="h-full pb-16 overflow-y-auto">
  826 + <div class="container grid px-6 mx-auto">
  827 + <h2
  828 + class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"
  829 + >
  830 + Modals
  831 + </h2>
  832 + <!-- CTA -->
  833 + <a
  834 + class="flex items-center justify-between p-4 mb-8 text-sm font-semibold text-purple-100 bg-purple-600 rounded-lg shadow-md focus:outline-none focus:shadow-outline-purple"
  835 + href="https://github.com/estevanmaito/windmill-dashboard"
  836 + >
  837 + <div class="flex items-center">
  838 + <svg
  839 + class="w-5 h-5 mr-2"
  840 + fill="currentColor"
  841 + viewBox="0 0 20 20"
  842 + >
  843 + <path
  844 + d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"
  845 + ></path>
  846 + </svg>
  847 + <span>Star this project on GitHub</span>
  848 + </div>
  849 + <span>View more &RightArrow;</span>
  850 + </a>
  851 +
  852 + <div
  853 + class="max-w-2xl px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"
  854 + >
  855 + <p class="mb-4 text-gray-600 dark:text-gray-400">
  856 + This is possibly
  857 + <strong>the most accessible a modal can get</strong>
  858 + , using JavaScript. When opened, it uses
  859 + <code>assets/js/focus-trap.js</code>
  860 + to create a
  861 + <em>focus trap</em>
  862 + , which means that if you use your keyboard to navigate around,
  863 + focus won't leak to the elements behind, staying inside the
  864 + modal in a loop, until you take any action.
  865 + </p>
  866 +
  867 + <p class="text-gray-600 dark:text-gray-400">
  868 + Also, on small screens it is placed at the bottom of the screen,
  869 + to account for larger devices and make it easier to click the
  870 + larger buttons.
  871 + </p>
  872 + </div>
  873 +
  874 + <div>
  875 + <button
  876 + @click="openModal"
  877 + class="px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  878 + >
  879 + Open Modal
  880 + </button>
  881 + </div>
  882 + </div>
  883 + </main>
  884 + </div>
  885 + </div>
  886 + <!-- Modal backdrop. This what you want to place close to the closing body tag -->
  887 + <div
  888 + x-show="isModalOpen"
  889 + x-transition:enter="transition ease-out duration-150"
  890 + x-transition:enter-start="opacity-0"
  891 + x-transition:enter-end="opacity-100"
  892 + x-transition:leave="transition ease-in duration-150"
  893 + x-transition:leave-start="opacity-100"
  894 + x-transition:leave-end="opacity-0"
  895 + class="fixed inset-0 z-30 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center"
  896 + >
  897 + <!-- Modal -->
  898 + <div
  899 + x-show="isModalOpen"
  900 + x-transition:enter="transition ease-out duration-150"
  901 + x-transition:enter-start="opacity-0 transform translate-y-1/2"
  902 + x-transition:enter-end="opacity-100"
  903 + x-transition:leave="transition ease-in duration-150"
  904 + x-transition:leave-start="opacity-100"
  905 + x-transition:leave-end="opacity-0 transform translate-y-1/2"
  906 + @click.away="closeModal"
  907 + @keydown.escape="closeModal"
  908 + class="w-full px-6 py-4 overflow-hidden bg-white rounded-t-lg dark:bg-gray-800 sm:rounded-lg sm:m-4 sm:max-w-xl"
  909 + role="dialog"
  910 + id="modal"
  911 + >
  912 + <!-- Remove header if you don't want a close icon. Use modal body to place modal tile. -->
  913 + <header class="flex justify-end">
  914 + <button
  915 + class="inline-flex items-center justify-center w-6 h-6 text-gray-400 transition-colors duration-150 rounded dark:hover:text-gray-200 hover: hover:text-gray-700"
  916 + aria-label="close"
  917 + @click="closeModal"
  918 + >
  919 + <svg
  920 + class="w-4 h-4"
  921 + fill="currentColor"
  922 + viewBox="0 0 20 20"
  923 + role="img"
  924 + aria-hidden="true"
  925 + >
  926 + <path
  927 + d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z"
  928 + clip-rule="evenodd"
  929 + fill-rule="evenodd"
  930 + ></path>
  931 + </svg>
  932 + </button>
  933 + </header>
  934 + <!-- Modal body -->
  935 + <div class="mt-4 mb-6">
  936 + <!-- Modal title -->
  937 + <p
  938 + class="mb-2 text-lg font-semibold text-gray-700 dark:text-gray-300"
  939 + >
  940 + Modal header
  941 + </p>
  942 + <!-- Modal description -->
  943 + <p class="text-sm text-gray-700 dark:text-gray-400">
  944 + Lorem, ipsum dolor sit amet consectetur adipisicing elit. Nostrum et
  945 + eligendi repudiandae voluptatem tempore!
  946 + </p>
  947 + </div>
  948 + <footer
  949 + class="flex flex-col items-center justify-end px-6 py-3 -mx-6 -mb-4 space-y-4 sm:space-y-0 sm:space-x-6 sm:flex-row bg-gray-50 dark:bg-gray-800"
  950 + >
  951 + <button
  952 + @click="closeModal"
  953 + class="w-full px-5 py-3 text-sm font-medium leading-5 text-white text-gray-700 transition-colors duration-150 border border-gray-300 rounded-lg dark:text-gray-400 sm:px-4 sm:py-2 sm:w-auto active:bg-transparent hover:border-gray-500 focus:border-gray-500 active:text-gray-500 focus:outline-none focus:shadow-outline-gray"
  954 + >
  955 + Cancel
  956 + </button>
  957 + <button
  958 + class="w-full px-5 py-3 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg sm:w-auto sm:px-4 sm:py-2 active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  959 + >
  960 + Accept
  961 + </button>
  962 + </footer>
  963 + </div>
  964 + </div>
  965 + <!-- End of modal backdrop -->
  966 + </body>
  967 +</html>
html/public/pages/404.html
... ... @@ -0,0 +1,862 @@
  1 +<!DOCTYPE html>
  2 +<html :class="{ 'theme-dark': dark }" x-data="data()" lang="en">
  3 + <head>
  4 + <meta charset="UTF-8" />
  5 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6 + <title>404 - Windmill Dashboard</title>
  7 + <link
  8 + href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"
  9 + rel="stylesheet"
  10 + />
  11 + <link rel="stylesheet" href="../assets/css/tailwind.output.css" />
  12 + <script
  13 + src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js"
  14 + defer
  15 + ></script>
  16 + <script src="../assets/js/init-alpine.js"></script>
  17 + </head>
  18 + <body>
  19 + <div
  20 + class="flex h-screen bg-gray-50 dark:bg-gray-900"
  21 + :class="{ 'overflow-hidden': isSideMenuOpen}"
  22 + >
  23 + <!-- Desktop sidebar -->
  24 + <aside
  25 + class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0"
  26 + >
  27 + <div class="py-4 text-gray-500 dark:text-gray-400">
  28 + <a
  29 + class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
  30 + href="#"
  31 + >
  32 + Windmill
  33 + </a>
  34 + <ul class="mt-6">
  35 + <li class="relative px-6 py-3">
  36 + <!-- Active items have the snippet below -->
  37 + <!-- <span
  38 + class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
  39 + aria-hidden="true"
  40 + ></span> -->
  41 +
  42 + <!-- Add this classes to an active anchor (a tag) -->
  43 + <!-- text-gray-800 dark:text-gray-100 -->
  44 + <a
  45 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  46 + href="../index.html"
  47 + >
  48 + <svg
  49 + class="w-5 h-5"
  50 + aria-hidden="true"
  51 + fill="none"
  52 + stroke-linecap="round"
  53 + stroke-linejoin="round"
  54 + stroke-width="2"
  55 + viewBox="0 0 24 24"
  56 + stroke="currentColor"
  57 + >
  58 + <path
  59 + d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"
  60 + ></path>
  61 + </svg>
  62 + <span class="ml-4">Dashboard</span>
  63 + </a>
  64 + </li>
  65 + </ul>
  66 + <ul>
  67 + <li class="relative px-6 py-3">
  68 + <a
  69 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  70 + href="../forms.html"
  71 + >
  72 + <svg
  73 + class="w-5 h-5"
  74 + aria-hidden="true"
  75 + fill="none"
  76 + stroke-linecap="round"
  77 + stroke-linejoin="round"
  78 + stroke-width="2"
  79 + viewBox="0 0 24 24"
  80 + stroke="currentColor"
  81 + >
  82 + <path
  83 + d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
  84 + ></path>
  85 + </svg>
  86 + <span class="ml-4">Forms</span>
  87 + </a>
  88 + </li>
  89 + <li class="relative px-6 py-3">
  90 + <a
  91 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  92 + href="../cards.html"
  93 + >
  94 + <svg
  95 + class="w-5 h-5"
  96 + aria-hidden="true"
  97 + fill="none"
  98 + stroke-linecap="round"
  99 + stroke-linejoin="round"
  100 + stroke-width="2"
  101 + viewBox="0 0 24 24"
  102 + stroke="currentColor"
  103 + >
  104 + <path
  105 + d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"
  106 + ></path>
  107 + </svg>
  108 + <span class="ml-4">Cards</span>
  109 + </a>
  110 + </li>
  111 + <li class="relative px-6 py-3">
  112 + <a
  113 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  114 + href="../charts.html"
  115 + >
  116 + <svg
  117 + class="w-5 h-5"
  118 + aria-hidden="true"
  119 + fill="none"
  120 + stroke-linecap="round"
  121 + stroke-linejoin="round"
  122 + stroke-width="2"
  123 + viewBox="0 0 24 24"
  124 + stroke="currentColor"
  125 + >
  126 + <path
  127 + d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
  128 + ></path>
  129 + <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
  130 + </svg>
  131 + <span class="ml-4">Charts</span>
  132 + </a>
  133 + </li>
  134 + <li class="relative px-6 py-3">
  135 + <a
  136 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  137 + href="../buttons.html"
  138 + >
  139 + <svg
  140 + class="w-5 h-5"
  141 + aria-hidden="true"
  142 + fill="none"
  143 + stroke-linecap="round"
  144 + stroke-linejoin="round"
  145 + stroke-width="2"
  146 + viewBox="0 0 24 24"
  147 + stroke="currentColor"
  148 + >
  149 + <path
  150 + d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"
  151 + ></path>
  152 + </svg>
  153 + <span class="ml-4">Buttons</span>
  154 + </a>
  155 + </li>
  156 + <li class="relative px-6 py-3">
  157 + <a
  158 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  159 + href="../modals.html"
  160 + >
  161 + <svg
  162 + class="w-5 h-5"
  163 + aria-hidden="true"
  164 + fill="none"
  165 + stroke-linecap="round"
  166 + stroke-linejoin="round"
  167 + stroke-width="2"
  168 + viewBox="0 0 24 24"
  169 + stroke="currentColor"
  170 + >
  171 + <path
  172 + d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"
  173 + ></path>
  174 + </svg>
  175 + <span class="ml-4">Modals</span>
  176 + </a>
  177 + </li>
  178 + <li class="relative px-6 py-3">
  179 + <a
  180 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  181 + href="../tables.html"
  182 + >
  183 + <svg
  184 + class="w-5 h-5"
  185 + aria-hidden="true"
  186 + fill="none"
  187 + stroke-linecap="round"
  188 + stroke-linejoin="round"
  189 + stroke-width="2"
  190 + viewBox="0 0 24 24"
  191 + stroke="currentColor"
  192 + >
  193 + <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
  194 + </svg>
  195 + <span class="ml-4">Tables</span>
  196 + </a>
  197 + </li>
  198 + <li class="relative px-6 py-3">
  199 + <button
  200 + class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  201 + @click="togglePagesMenu"
  202 + aria-haspopup="true"
  203 + >
  204 + <span class="inline-flex items-center">
  205 + <svg
  206 + class="w-5 h-5"
  207 + aria-hidden="true"
  208 + fill="none"
  209 + stroke-linecap="round"
  210 + stroke-linejoin="round"
  211 + stroke-width="2"
  212 + viewBox="0 0 24 24"
  213 + stroke="currentColor"
  214 + >
  215 + <path
  216 + d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"
  217 + ></path>
  218 + </svg>
  219 + <span class="ml-4">Pages</span>
  220 + </span>
  221 + <svg
  222 + class="w-4 h-4"
  223 + aria-hidden="true"
  224 + fill="currentColor"
  225 + viewBox="0 0 20 20"
  226 + >
  227 + <path
  228 + fill-rule="evenodd"
  229 + d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
  230 + clip-rule="evenodd"
  231 + ></path>
  232 + </svg>
  233 + </button>
  234 + <template x-if="isPagesMenuOpen">
  235 + <ul
  236 + x-transition:enter="transition-all ease-in-out duration-300"
  237 + x-transition:enter-start="opacity-25 max-h-0"
  238 + x-transition:enter-end="opacity-100 max-h-xl"
  239 + x-transition:leave="transition-all ease-in-out duration-300"
  240 + x-transition:leave-start="opacity-100 max-h-xl"
  241 + x-transition:leave-end="opacity-0 max-h-0"
  242 + class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900"
  243 + aria-label="submenu"
  244 + >
  245 + <li
  246 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  247 + >
  248 + <a class="w-full" href="./login.html">Login</a>
  249 + </li>
  250 + <li
  251 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  252 + >
  253 + <a class="w-full" href="./create-account.html">
  254 + Create account
  255 + </a>
  256 + </li>
  257 + <li
  258 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  259 + >
  260 + <a class="w-full" href="./forgot-password.html">
  261 + Forgot password
  262 + </a>
  263 + </li>
  264 + <li
  265 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  266 + >
  267 + <a class="w-full" href="./404.html">404</a>
  268 + </li>
  269 + <li
  270 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  271 + >
  272 + <a class="w-full" href="./blank.html">Blank</a>
  273 + </li>
  274 + </ul>
  275 + </template>
  276 + </li>
  277 + </ul>
  278 + <div class="px-6 my-6">
  279 + <button
  280 + class="flex items-center justify-between w-full px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  281 + >
  282 + Create account
  283 + <span class="ml-2" aria-hidden="true">+</span>
  284 + </button>
  285 + </div>
  286 + </div>
  287 + </aside>
  288 + <!-- Mobile sidebar -->
  289 + <!-- Backdrop -->
  290 + <div
  291 + x-show="isSideMenuOpen"
  292 + x-transition:enter="transition ease-in-out duration-150"
  293 + x-transition:enter-start="opacity-0"
  294 + x-transition:enter-end="opacity-100"
  295 + x-transition:leave="transition ease-in-out duration-150"
  296 + x-transition:leave-start="opacity-100"
  297 + x-transition:leave-end="opacity-0"
  298 + class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center"
  299 + ></div>
  300 + <aside
  301 + class="fixed inset-y-0 z-20 flex-shrink-0 w-64 mt-16 overflow-y-auto bg-white dark:bg-gray-800 md:hidden"
  302 + x-show="isSideMenuOpen"
  303 + x-transition:enter="transition ease-in-out duration-150"
  304 + x-transition:enter-start="opacity-0 transform -translate-x-20"
  305 + x-transition:enter-end="opacity-100"
  306 + x-transition:leave="transition ease-in-out duration-150"
  307 + x-transition:leave-start="opacity-100"
  308 + x-transition:leave-end="opacity-0 transform -translate-x-20"
  309 + @click.away="closeSideMenu"
  310 + @keydown.escape="closeSideMenu"
  311 + >
  312 + <div class="py-4 text-gray-500 dark:text-gray-400">
  313 + <a
  314 + class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
  315 + href="#"
  316 + >
  317 + Windmill
  318 + </a>
  319 + <ul class="mt-6">
  320 + <li class="relative px-6 py-3">
  321 + <!-- Active items have the snippet below -->
  322 + <!-- <span
  323 + class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
  324 + aria-hidden="true"
  325 + ></span> -->
  326 +
  327 + <!-- Add this classes to an active anchor (a tag) -->
  328 + <!-- text-gray-800 dark:text-gray-100 -->
  329 + <a
  330 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  331 + href="../index.html"
  332 + >
  333 + <svg
  334 + class="w-5 h-5"
  335 + aria-hidden="true"
  336 + fill="none"
  337 + stroke-linecap="round"
  338 + stroke-linejoin="round"
  339 + stroke-width="2"
  340 + viewBox="0 0 24 24"
  341 + stroke="currentColor"
  342 + >
  343 + <path
  344 + d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"
  345 + ></path>
  346 + </svg>
  347 + <span class="ml-4">Dashboard</span>
  348 + </a>
  349 + </li>
  350 + </ul>
  351 + <ul>
  352 + <li class="relative px-6 py-3">
  353 + <a
  354 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  355 + href="../forms.html"
  356 + >
  357 + <svg
  358 + class="w-5 h-5"
  359 + aria-hidden="true"
  360 + fill="none"
  361 + stroke-linecap="round"
  362 + stroke-linejoin="round"
  363 + stroke-width="2"
  364 + viewBox="0 0 24 24"
  365 + stroke="currentColor"
  366 + >
  367 + <path
  368 + d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
  369 + ></path>
  370 + </svg>
  371 + <span class="ml-4">Forms</span>
  372 + </a>
  373 + </li>
  374 + <li class="relative px-6 py-3">
  375 + <a
  376 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  377 + href="../cards.html"
  378 + >
  379 + <svg
  380 + class="w-5 h-5"
  381 + aria-hidden="true"
  382 + fill="none"
  383 + stroke-linecap="round"
  384 + stroke-linejoin="round"
  385 + stroke-width="2"
  386 + viewBox="0 0 24 24"
  387 + stroke="currentColor"
  388 + >
  389 + <path
  390 + d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"
  391 + ></path>
  392 + </svg>
  393 + <span class="ml-4">Cards</span>
  394 + </a>
  395 + </li>
  396 + <li class="relative px-6 py-3">
  397 + <a
  398 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  399 + href="../charts.html"
  400 + >
  401 + <svg
  402 + class="w-5 h-5"
  403 + aria-hidden="true"
  404 + fill="none"
  405 + stroke-linecap="round"
  406 + stroke-linejoin="round"
  407 + stroke-width="2"
  408 + viewBox="0 0 24 24"
  409 + stroke="currentColor"
  410 + >
  411 + <path
  412 + d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
  413 + ></path>
  414 + <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
  415 + </svg>
  416 + <span class="ml-4">Charts</span>
  417 + </a>
  418 + </li>
  419 + <li class="relative px-6 py-3">
  420 + <a
  421 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  422 + href="../buttons.html"
  423 + >
  424 + <svg
  425 + class="w-5 h-5"
  426 + aria-hidden="true"
  427 + fill="none"
  428 + stroke-linecap="round"
  429 + stroke-linejoin="round"
  430 + stroke-width="2"
  431 + viewBox="0 0 24 24"
  432 + stroke="currentColor"
  433 + >
  434 + <path
  435 + d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"
  436 + ></path>
  437 + </svg>
  438 + <span class="ml-4">Buttons</span>
  439 + </a>
  440 + </li>
  441 + <li class="relative px-6 py-3">
  442 + <a
  443 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  444 + href="../modals.html"
  445 + >
  446 + <svg
  447 + class="w-5 h-5"
  448 + aria-hidden="true"
  449 + fill="none"
  450 + stroke-linecap="round"
  451 + stroke-linejoin="round"
  452 + stroke-width="2"
  453 + viewBox="0 0 24 24"
  454 + stroke="currentColor"
  455 + >
  456 + <path
  457 + d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"
  458 + ></path>
  459 + </svg>
  460 + <span class="ml-4">Modals</span>
  461 + </a>
  462 + </li>
  463 + <li class="relative px-6 py-3">
  464 + <a
  465 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  466 + href="../tables.html"
  467 + >
  468 + <svg
  469 + class="w-5 h-5"
  470 + aria-hidden="true"
  471 + fill="none"
  472 + stroke-linecap="round"
  473 + stroke-linejoin="round"
  474 + stroke-width="2"
  475 + viewBox="0 0 24 24"
  476 + stroke="currentColor"
  477 + >
  478 + <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
  479 + </svg>
  480 + <span class="ml-4">Tables</span>
  481 + </a>
  482 + </li>
  483 + <li class="relative px-6 py-3">
  484 + <button
  485 + class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  486 + @click="togglePagesMenu"
  487 + aria-haspopup="true"
  488 + >
  489 + <span class="inline-flex items-center">
  490 + <svg
  491 + class="w-5 h-5"
  492 + aria-hidden="true"
  493 + fill="none"
  494 + stroke-linecap="round"
  495 + stroke-linejoin="round"
  496 + stroke-width="2"
  497 + viewBox="0 0 24 24"
  498 + stroke="currentColor"
  499 + >
  500 + <path
  501 + d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"
  502 + ></path>
  503 + </svg>
  504 + <span class="ml-4">Pages</span>
  505 + </span>
  506 + <svg
  507 + class="w-4 h-4"
  508 + aria-hidden="true"
  509 + fill="currentColor"
  510 + viewBox="0 0 20 20"
  511 + >
  512 + <path
  513 + fill-rule="evenodd"
  514 + d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
  515 + clip-rule="evenodd"
  516 + ></path>
  517 + </svg>
  518 + </button>
  519 + <template x-if="isPagesMenuOpen">
  520 + <ul
  521 + x-transition:enter="transition-all ease-in-out duration-300"
  522 + x-transition:enter-start="opacity-25 max-h-0"
  523 + x-transition:enter-end="opacity-100 max-h-xl"
  524 + x-transition:leave="transition-all ease-in-out duration-300"
  525 + x-transition:leave-start="opacity-100 max-h-xl"
  526 + x-transition:leave-end="opacity-0 max-h-0"
  527 + class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900"
  528 + aria-label="submenu"
  529 + >
  530 + <li
  531 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  532 + >
  533 + <a class="w-full" href="./login.html">Login</a>
  534 + </li>
  535 + <li
  536 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  537 + >
  538 + <a class="w-full" href="./create-account.html">
  539 + Create account
  540 + </a>
  541 + </li>
  542 + <li
  543 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  544 + >
  545 + <a class="w-full" href="./forgot-password.html">
  546 + Forgot password
  547 + </a>
  548 + </li>
  549 + <li
  550 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  551 + >
  552 + <a class="w-full" href="./404.html">404</a>
  553 + </li>
  554 + <li
  555 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  556 + >
  557 + <a class="w-full" href="pages/blank.html">Blank</a>
  558 + </li>
  559 + </ul>
  560 + </template>
  561 + </li>
  562 + </ul>
  563 + <div class="px-6 my-6">
  564 + <button
  565 + class="flex items-center justify-between px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  566 + >
  567 + Create account
  568 + <span class="ml-2" aria-hidden="true">+</span>
  569 + </button>
  570 + </div>
  571 + </div>
  572 + </aside>
  573 + <div class="flex flex-col flex-1">
  574 + <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800">
  575 + <div
  576 + class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300"
  577 + >
  578 + <!-- Mobile hamburger -->
  579 + <button
  580 + class="p-1 -ml-1 mr-5 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple"
  581 + @click="toggleSideMenu"
  582 + aria-label="Menu"
  583 + >
  584 + <svg
  585 + class="w-6 h-6"
  586 + aria-hidden="true"
  587 + fill="currentColor"
  588 + viewBox="0 0 20 20"
  589 + >
  590 + <path
  591 + fill-rule="evenodd"
  592 + d="M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z"
  593 + clip-rule="evenodd"
  594 + ></path>
  595 + </svg>
  596 + </button>
  597 + <!-- Search input -->
  598 + <div class="flex justify-center flex-1 lg:mr-32">
  599 + <div
  600 + class="relative w-full max-w-xl mr-6 focus-within:text-purple-500"
  601 + >
  602 + <div class="absolute inset-y-0 flex items-center pl-2">
  603 + <svg
  604 + class="w-4 h-4"
  605 + aria-hidden="true"
  606 + fill="currentColor"
  607 + viewBox="0 0 20 20"
  608 + >
  609 + <path
  610 + fill-rule="evenodd"
  611 + d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z"
  612 + clip-rule="evenodd"
  613 + ></path>
  614 + </svg>
  615 + </div>
  616 + <input
  617 + class="w-full pl-8 pr-2 text-sm text-gray-700 placeholder-gray-600 bg-gray-100 border-0 rounded-md dark:placeholder-gray-500 dark:focus:shadow-outline-gray dark:focus:placeholder-gray-600 dark:bg-gray-700 dark:text-gray-200 focus:placeholder-gray-500 focus:bg-white focus:border-purple-300 focus:outline-none focus:shadow-outline-purple form-input"
  618 + type="text"
  619 + placeholder="Search for projects"
  620 + aria-label="Search"
  621 + />
  622 + </div>
  623 + </div>
  624 + <ul class="flex items-center flex-shrink-0 space-x-6">
  625 + <!-- Theme toggler -->
  626 + <li class="flex">
  627 + <button
  628 + class="rounded-md focus:outline-none focus:shadow-outline-purple"
  629 + @click="toggleTheme"
  630 + aria-label="Toggle color mode"
  631 + >
  632 + <template x-if="!dark">
  633 + <svg
  634 + class="w-5 h-5"
  635 + aria-hidden="true"
  636 + fill="currentColor"
  637 + viewBox="0 0 20 20"
  638 + >
  639 + <path
  640 + d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"
  641 + ></path>
  642 + </svg>
  643 + </template>
  644 + <template x-if="dark">
  645 + <svg
  646 + class="w-5 h-5"
  647 + aria-hidden="true"
  648 + fill="currentColor"
  649 + viewBox="0 0 20 20"
  650 + >
  651 + <path
  652 + fill-rule="evenodd"
  653 + d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z"
  654 + clip-rule="evenodd"
  655 + ></path>
  656 + </svg>
  657 + </template>
  658 + </button>
  659 + </li>
  660 + <!-- Notifications menu -->
  661 + <li class="relative">
  662 + <button
  663 + class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple"
  664 + @click="toggleNotificationsMenu"
  665 + @keydown.escape="closeNotificationsMenu"
  666 + aria-label="Notifications"
  667 + aria-haspopup="true"
  668 + >
  669 + <svg
  670 + class="w-5 h-5"
  671 + aria-hidden="true"
  672 + fill="currentColor"
  673 + viewBox="0 0 20 20"
  674 + >
  675 + <path
  676 + d="M10 2a6 6 0 00-6 6v3.586l-.707.707A1 1 0 004 14h12a1 1 0 00.707-1.707L16 11.586V8a6 6 0 00-6-6zM10 18a3 3 0 01-3-3h6a3 3 0 01-3 3z"
  677 + ></path>
  678 + </svg>
  679 + <!-- Notification badge -->
  680 + <span
  681 + aria-hidden="true"
  682 + class="absolute top-0 right-0 inline-block w-3 h-3 transform translate-x-1 -translate-y-1 bg-red-600 border-2 border-white rounded-full dark:border-gray-800"
  683 + ></span>
  684 + </button>
  685 + <template x-if="isNotificationsMenuOpen">
  686 + <ul
  687 + x-transition:leave="transition ease-in duration-150"
  688 + x-transition:leave-start="opacity-100"
  689 + x-transition:leave-end="opacity-0"
  690 + @click.away="closeNotificationsMenu"
  691 + @keydown.escape="closeNotificationsMenu"
  692 + class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:text-gray-300 dark:border-gray-700 dark:bg-gray-700"
  693 + aria-label="submenu"
  694 + >
  695 + <li class="flex">
  696 + <a
  697 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  698 + href="#"
  699 + >
  700 + <span>Messages</span>
  701 + <span
  702 + class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600"
  703 + >
  704 + 13
  705 + </span>
  706 + </a>
  707 + </li>
  708 + <li class="flex">
  709 + <a
  710 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  711 + href="#"
  712 + >
  713 + <span>Sales</span>
  714 + <span
  715 + class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600"
  716 + >
  717 + 2
  718 + </span>
  719 + </a>
  720 + </li>
  721 + <li class="flex">
  722 + <a
  723 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  724 + href="#"
  725 + >
  726 + <span>Alerts</span>
  727 + </a>
  728 + </li>
  729 + </ul>
  730 + </template>
  731 + </li>
  732 + <!-- Profile menu -->
  733 + <li class="relative">
  734 + <button
  735 + class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none"
  736 + @click="toggleProfileMenu"
  737 + @keydown.escape="closeProfileMenu"
  738 + aria-label="Account"
  739 + aria-haspopup="true"
  740 + >
  741 + <img
  742 + class="object-cover w-8 h-8 rounded-full"
  743 + src="https://images.unsplash.com/photo-1502378735452-bc7d86632805?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&s=aa3a807e1bbdfd4364d1f449eaa96d82"
  744 + alt=""
  745 + aria-hidden="true"
  746 + />
  747 + </button>
  748 + <template x-if="isProfileMenuOpen">
  749 + <ul
  750 + x-transition:leave="transition ease-in duration-150"
  751 + x-transition:leave-start="opacity-100"
  752 + x-transition:leave-end="opacity-0"
  753 + @click.away="closeProfileMenu"
  754 + @keydown.escape="closeProfileMenu"
  755 + class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:border-gray-700 dark:text-gray-300 dark:bg-gray-700"
  756 + aria-label="submenu"
  757 + >
  758 + <li class="flex">
  759 + <a
  760 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  761 + href="#"
  762 + >
  763 + <svg
  764 + class="w-4 h-4 mr-3"
  765 + aria-hidden="true"
  766 + fill="none"
  767 + stroke-linecap="round"
  768 + stroke-linejoin="round"
  769 + stroke-width="2"
  770 + viewBox="0 0 24 24"
  771 + stroke="currentColor"
  772 + >
  773 + <path
  774 + d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"
  775 + ></path>
  776 + </svg>
  777 + <span>Profile</span>
  778 + </a>
  779 + </li>
  780 + <li class="flex">
  781 + <a
  782 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  783 + href="#"
  784 + >
  785 + <svg
  786 + class="w-4 h-4 mr-3"
  787 + aria-hidden="true"
  788 + fill="none"
  789 + stroke-linecap="round"
  790 + stroke-linejoin="round"
  791 + stroke-width="2"
  792 + viewBox="0 0 24 24"
  793 + stroke="currentColor"
  794 + >
  795 + <path
  796 + d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"
  797 + ></path>
  798 + <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
  799 + </svg>
  800 + <span>Settings</span>
  801 + </a>
  802 + </li>
  803 + <li class="flex">
  804 + <a
  805 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  806 + href="#"
  807 + >
  808 + <svg
  809 + class="w-4 h-4 mr-3"
  810 + aria-hidden="true"
  811 + fill="none"
  812 + stroke-linecap="round"
  813 + stroke-linejoin="round"
  814 + stroke-width="2"
  815 + viewBox="0 0 24 24"
  816 + stroke="currentColor"
  817 + >
  818 + <path
  819 + d="M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1"
  820 + ></path>
  821 + </svg>
  822 + <span>Log out</span>
  823 + </a>
  824 + </li>
  825 + </ul>
  826 + </template>
  827 + </li>
  828 + </ul>
  829 + </div>
  830 + </header>
  831 + <main class="h-full pb-16 overflow-y-auto">
  832 + <div class="container flex flex-col items-center px-6 mx-auto">
  833 + <svg
  834 + class="w-12 h-12 mt-8 text-purple-200"
  835 + fill="currentColor"
  836 + viewBox="0 0 20 20"
  837 + >
  838 + <path
  839 + fill-rule="evenodd"
  840 + d="M13.477 14.89A6 6 0 015.11 6.524l8.367 8.368zm1.414-1.414L6.524 5.11a6 6 0 018.367 8.367zM18 10a8 8 0 11-16 0 8 8 0 0116 0z"
  841 + clip-rule="evenodd"
  842 + ></path>
  843 + </svg>
  844 + <h1 class="text-6xl font-semibold text-gray-700 dark:text-gray-200">
  845 + 404
  846 + </h1>
  847 + <p class="text-gray-700 dark:text-gray-300">
  848 + Page not found. Check the address or
  849 + <a
  850 + class="text-purple-600 hover:underline dark:text-purple-300"
  851 + href="../index.html"
  852 + >
  853 + go back
  854 + </a>
  855 + .
  856 + </p>
  857 + </div>
  858 + </main>
  859 + </div>
  860 + </div>
  861 + </body>
  862 +</html>
html/public/pages/blank.html
... ... @@ -0,0 +1,844 @@
  1 +<!DOCTYPE html>
  2 +<html :class="{ 'theme-dark': dark }" x-data="data()" lang="en">
  3 + <head>
  4 + <meta charset="UTF-8" />
  5 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6 + <title>Blank - Windmill Dashboard</title>
  7 + <link
  8 + href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"
  9 + rel="stylesheet"
  10 + />
  11 + <link rel="stylesheet" href="../assets/css/tailwind.output.css" />
  12 + <script
  13 + src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js"
  14 + defer
  15 + ></script>
  16 + <script src="../assets/js/init-alpine.js"></script>
  17 + </head>
  18 + <body>
  19 + <div
  20 + class="flex h-screen bg-gray-50 dark:bg-gray-900"
  21 + :class="{ 'overflow-hidden': isSideMenuOpen}"
  22 + >
  23 + <!-- Desktop sidebar -->
  24 + <aside
  25 + class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0"
  26 + >
  27 + <div class="py-4 text-gray-500 dark:text-gray-400">
  28 + <a
  29 + class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
  30 + href="#"
  31 + >
  32 + Windmill
  33 + </a>
  34 + <ul class="mt-6">
  35 + <li class="relative px-6 py-3">
  36 + <!-- Active items have the snippet below -->
  37 + <!-- <span
  38 + class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
  39 + aria-hidden="true"
  40 + ></span> -->
  41 +
  42 + <!-- Add this classes to an active anchor (a tag) -->
  43 + <!-- text-gray-800 dark:text-gray-100 -->
  44 + <a
  45 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  46 + href="../index.html"
  47 + >
  48 + <svg
  49 + class="w-5 h-5"
  50 + aria-hidden="true"
  51 + fill="none"
  52 + stroke-linecap="round"
  53 + stroke-linejoin="round"
  54 + stroke-width="2"
  55 + viewBox="0 0 24 24"
  56 + stroke="currentColor"
  57 + >
  58 + <path
  59 + d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"
  60 + ></path>
  61 + </svg>
  62 + <span class="ml-4">Dashboard</span>
  63 + </a>
  64 + </li>
  65 + </ul>
  66 + <ul>
  67 + <li class="relative px-6 py-3">
  68 + <a
  69 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  70 + href="../forms.html"
  71 + >
  72 + <svg
  73 + class="w-5 h-5"
  74 + aria-hidden="true"
  75 + fill="none"
  76 + stroke-linecap="round"
  77 + stroke-linejoin="round"
  78 + stroke-width="2"
  79 + viewBox="0 0 24 24"
  80 + stroke="currentColor"
  81 + >
  82 + <path
  83 + d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
  84 + ></path>
  85 + </svg>
  86 + <span class="ml-4">Forms</span>
  87 + </a>
  88 + </li>
  89 + <li class="relative px-6 py-3">
  90 + <a
  91 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  92 + href="../cards.html"
  93 + >
  94 + <svg
  95 + class="w-5 h-5"
  96 + aria-hidden="true"
  97 + fill="none"
  98 + stroke-linecap="round"
  99 + stroke-linejoin="round"
  100 + stroke-width="2"
  101 + viewBox="0 0 24 24"
  102 + stroke="currentColor"
  103 + >
  104 + <path
  105 + d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"
  106 + ></path>
  107 + </svg>
  108 + <span class="ml-4">Cards</span>
  109 + </a>
  110 + </li>
  111 + <li class="relative px-6 py-3">
  112 + <a
  113 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  114 + href="../charts.html"
  115 + >
  116 + <svg
  117 + class="w-5 h-5"
  118 + aria-hidden="true"
  119 + fill="none"
  120 + stroke-linecap="round"
  121 + stroke-linejoin="round"
  122 + stroke-width="2"
  123 + viewBox="0 0 24 24"
  124 + stroke="currentColor"
  125 + >
  126 + <path
  127 + d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
  128 + ></path>
  129 + <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
  130 + </svg>
  131 + <span class="ml-4">Charts</span>
  132 + </a>
  133 + </li>
  134 + <li class="relative px-6 py-3">
  135 + <a
  136 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  137 + href="../buttons.html"
  138 + >
  139 + <svg
  140 + class="w-5 h-5"
  141 + aria-hidden="true"
  142 + fill="none"
  143 + stroke-linecap="round"
  144 + stroke-linejoin="round"
  145 + stroke-width="2"
  146 + viewBox="0 0 24 24"
  147 + stroke="currentColor"
  148 + >
  149 + <path
  150 + d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"
  151 + ></path>
  152 + </svg>
  153 + <span class="ml-4">Buttons</span>
  154 + </a>
  155 + </li>
  156 + <li class="relative px-6 py-3">
  157 + <a
  158 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  159 + href="../modals.html"
  160 + >
  161 + <svg
  162 + class="w-5 h-5"
  163 + aria-hidden="true"
  164 + fill="none"
  165 + stroke-linecap="round"
  166 + stroke-linejoin="round"
  167 + stroke-width="2"
  168 + viewBox="0 0 24 24"
  169 + stroke="currentColor"
  170 + >
  171 + <path
  172 + d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"
  173 + ></path>
  174 + </svg>
  175 + <span class="ml-4">Modals</span>
  176 + </a>
  177 + </li>
  178 + <li class="relative px-6 py-3">
  179 + <a
  180 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  181 + href="../tables.html"
  182 + >
  183 + <svg
  184 + class="w-5 h-5"
  185 + aria-hidden="true"
  186 + fill="none"
  187 + stroke-linecap="round"
  188 + stroke-linejoin="round"
  189 + stroke-width="2"
  190 + viewBox="0 0 24 24"
  191 + stroke="currentColor"
  192 + >
  193 + <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
  194 + </svg>
  195 + <span class="ml-4">Tables</span>
  196 + </a>
  197 + </li>
  198 + <li class="relative px-6 py-3">
  199 + <button
  200 + class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  201 + @click="togglePagesMenu"
  202 + aria-haspopup="true"
  203 + >
  204 + <span class="inline-flex items-center">
  205 + <svg
  206 + class="w-5 h-5"
  207 + aria-hidden="true"
  208 + fill="none"
  209 + stroke-linecap="round"
  210 + stroke-linejoin="round"
  211 + stroke-width="2"
  212 + viewBox="0 0 24 24"
  213 + stroke="currentColor"
  214 + >
  215 + <path
  216 + d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"
  217 + ></path>
  218 + </svg>
  219 + <span class="ml-4">Pages</span>
  220 + </span>
  221 + <svg
  222 + class="w-4 h-4"
  223 + aria-hidden="true"
  224 + fill="currentColor"
  225 + viewBox="0 0 20 20"
  226 + >
  227 + <path
  228 + fill-rule="evenodd"
  229 + d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
  230 + clip-rule="evenodd"
  231 + ></path>
  232 + </svg>
  233 + </button>
  234 + <template x-if="isPagesMenuOpen">
  235 + <ul
  236 + x-transition:enter="transition-all ease-in-out duration-300"
  237 + x-transition:enter-start="opacity-25 max-h-0"
  238 + x-transition:enter-end="opacity-100 max-h-xl"
  239 + x-transition:leave="transition-all ease-in-out duration-300"
  240 + x-transition:leave-start="opacity-100 max-h-xl"
  241 + x-transition:leave-end="opacity-0 max-h-0"
  242 + class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900"
  243 + aria-label="submenu"
  244 + >
  245 + <li
  246 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  247 + >
  248 + <a class="w-full" href="./login.html">Login</a>
  249 + </li>
  250 + <li
  251 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  252 + >
  253 + <a class="w-full" href="./create-account.html">
  254 + Create account
  255 + </a>
  256 + </li>
  257 + <li
  258 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  259 + >
  260 + <a class="w-full" href="./forgot-password.html">
  261 + Forgot password
  262 + </a>
  263 + </li>
  264 + <li
  265 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  266 + >
  267 + <a class="w-full" href="./404.html">404</a>
  268 + </li>
  269 + <li
  270 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  271 + >
  272 + <a class="w-full" href="./blank.html">Blank</a>
  273 + </li>
  274 + </ul>
  275 + </template>
  276 + </li>
  277 + </ul>
  278 + <div class="px-6 my-6">
  279 + <button
  280 + class="flex items-center justify-between w-full px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  281 + >
  282 + Create account
  283 + <span class="ml-2" aria-hidden="true">+</span>
  284 + </button>
  285 + </div>
  286 + </div>
  287 + </aside>
  288 + <!-- Mobile sidebar -->
  289 + <!-- Backdrop -->
  290 + <div
  291 + x-show="isSideMenuOpen"
  292 + x-transition:enter="transition ease-in-out duration-150"
  293 + x-transition:enter-start="opacity-0"
  294 + x-transition:enter-end="opacity-100"
  295 + x-transition:leave="transition ease-in-out duration-150"
  296 + x-transition:leave-start="opacity-100"
  297 + x-transition:leave-end="opacity-0"
  298 + class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center"
  299 + ></div>
  300 + <aside
  301 + class="fixed inset-y-0 z-20 flex-shrink-0 w-64 mt-16 overflow-y-auto bg-white dark:bg-gray-800 md:hidden"
  302 + x-show="isSideMenuOpen"
  303 + x-transition:enter="transition ease-in-out duration-150"
  304 + x-transition:enter-start="opacity-0 transform -translate-x-20"
  305 + x-transition:enter-end="opacity-100"
  306 + x-transition:leave="transition ease-in-out duration-150"
  307 + x-transition:leave-start="opacity-100"
  308 + x-transition:leave-end="opacity-0 transform -translate-x-20"
  309 + @click.away="closeSideMenu"
  310 + @keydown.escape="closeSideMenu"
  311 + >
  312 + <div class="py-4 text-gray-500 dark:text-gray-400">
  313 + <a
  314 + class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
  315 + href="#"
  316 + >
  317 + Windmill
  318 + </a>
  319 + <ul class="mt-6">
  320 + <li class="relative px-6 py-3">
  321 + <!-- Active items have the snippet below -->
  322 + <!-- <span
  323 + class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
  324 + aria-hidden="true"
  325 + ></span> -->
  326 +
  327 + <!-- Add this classes to an active anchor (a tag) -->
  328 + <!-- text-gray-800 dark:text-gray-100 -->
  329 + <a
  330 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  331 + href="../index.html"
  332 + >
  333 + <svg
  334 + class="w-5 h-5"
  335 + aria-hidden="true"
  336 + fill="none"
  337 + stroke-linecap="round"
  338 + stroke-linejoin="round"
  339 + stroke-width="2"
  340 + viewBox="0 0 24 24"
  341 + stroke="currentColor"
  342 + >
  343 + <path
  344 + d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"
  345 + ></path>
  346 + </svg>
  347 + <span class="ml-4">Dashboard</span>
  348 + </a>
  349 + </li>
  350 + </ul>
  351 + <ul>
  352 + <li class="relative px-6 py-3">
  353 + <a
  354 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  355 + href="../forms.html"
  356 + >
  357 + <svg
  358 + class="w-5 h-5"
  359 + aria-hidden="true"
  360 + fill="none"
  361 + stroke-linecap="round"
  362 + stroke-linejoin="round"
  363 + stroke-width="2"
  364 + viewBox="0 0 24 24"
  365 + stroke="currentColor"
  366 + >
  367 + <path
  368 + d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
  369 + ></path>
  370 + </svg>
  371 + <span class="ml-4">Forms</span>
  372 + </a>
  373 + </li>
  374 + <li class="relative px-6 py-3">
  375 + <a
  376 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  377 + href="../cards.html"
  378 + >
  379 + <svg
  380 + class="w-5 h-5"
  381 + aria-hidden="true"
  382 + fill="none"
  383 + stroke-linecap="round"
  384 + stroke-linejoin="round"
  385 + stroke-width="2"
  386 + viewBox="0 0 24 24"
  387 + stroke="currentColor"
  388 + >
  389 + <path
  390 + d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"
  391 + ></path>
  392 + </svg>
  393 + <span class="ml-4">Cards</span>
  394 + </a>
  395 + </li>
  396 + <li class="relative px-6 py-3">
  397 + <a
  398 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  399 + href="../charts.html"
  400 + >
  401 + <svg
  402 + class="w-5 h-5"
  403 + aria-hidden="true"
  404 + fill="none"
  405 + stroke-linecap="round"
  406 + stroke-linejoin="round"
  407 + stroke-width="2"
  408 + viewBox="0 0 24 24"
  409 + stroke="currentColor"
  410 + >
  411 + <path
  412 + d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
  413 + ></path>
  414 + <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
  415 + </svg>
  416 + <span class="ml-4">Charts</span>
  417 + </a>
  418 + </li>
  419 + <li class="relative px-6 py-3">
  420 + <a
  421 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  422 + href="../buttons.html"
  423 + >
  424 + <svg
  425 + class="w-5 h-5"
  426 + aria-hidden="true"
  427 + fill="none"
  428 + stroke-linecap="round"
  429 + stroke-linejoin="round"
  430 + stroke-width="2"
  431 + viewBox="0 0 24 24"
  432 + stroke="currentColor"
  433 + >
  434 + <path
  435 + d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"
  436 + ></path>
  437 + </svg>
  438 + <span class="ml-4">Buttons</span>
  439 + </a>
  440 + </li>
  441 + <li class="relative px-6 py-3">
  442 + <a
  443 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  444 + href="../modals.html"
  445 + >
  446 + <svg
  447 + class="w-5 h-5"
  448 + aria-hidden="true"
  449 + fill="none"
  450 + stroke-linecap="round"
  451 + stroke-linejoin="round"
  452 + stroke-width="2"
  453 + viewBox="0 0 24 24"
  454 + stroke="currentColor"
  455 + >
  456 + <path
  457 + d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"
  458 + ></path>
  459 + </svg>
  460 + <span class="ml-4">Modals</span>
  461 + </a>
  462 + </li>
  463 + <li class="relative px-6 py-3">
  464 + <a
  465 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  466 + href="../tables.html"
  467 + >
  468 + <svg
  469 + class="w-5 h-5"
  470 + aria-hidden="true"
  471 + fill="none"
  472 + stroke-linecap="round"
  473 + stroke-linejoin="round"
  474 + stroke-width="2"
  475 + viewBox="0 0 24 24"
  476 + stroke="currentColor"
  477 + >
  478 + <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
  479 + </svg>
  480 + <span class="ml-4">Tables</span>
  481 + </a>
  482 + </li>
  483 + <li class="relative px-6 py-3">
  484 + <button
  485 + class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  486 + @click="togglePagesMenu"
  487 + aria-haspopup="true"
  488 + >
  489 + <span class="inline-flex items-center">
  490 + <svg
  491 + class="w-5 h-5"
  492 + aria-hidden="true"
  493 + fill="none"
  494 + stroke-linecap="round"
  495 + stroke-linejoin="round"
  496 + stroke-width="2"
  497 + viewBox="0 0 24 24"
  498 + stroke="currentColor"
  499 + >
  500 + <path
  501 + d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"
  502 + ></path>
  503 + </svg>
  504 + <span class="ml-4">Pages</span>
  505 + </span>
  506 + <svg
  507 + class="w-4 h-4"
  508 + aria-hidden="true"
  509 + fill="currentColor"
  510 + viewBox="0 0 20 20"
  511 + >
  512 + <path
  513 + fill-rule="evenodd"
  514 + d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
  515 + clip-rule="evenodd"
  516 + ></path>
  517 + </svg>
  518 + </button>
  519 + <template x-if="isPagesMenuOpen">
  520 + <ul
  521 + x-transition:enter="transition-all ease-in-out duration-300"
  522 + x-transition:enter-start="opacity-25 max-h-0"
  523 + x-transition:enter-end="opacity-100 max-h-xl"
  524 + x-transition:leave="transition-all ease-in-out duration-300"
  525 + x-transition:leave-start="opacity-100 max-h-xl"
  526 + x-transition:leave-end="opacity-0 max-h-0"
  527 + class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900"
  528 + aria-label="submenu"
  529 + >
  530 + <li
  531 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  532 + >
  533 + <a class="w-full" href="./login.html">Login</a>
  534 + </li>
  535 + <li
  536 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  537 + >
  538 + <a class="w-full" href="./create-account.html">
  539 + Create account
  540 + </a>
  541 + </li>
  542 + <li
  543 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  544 + >
  545 + <a class="w-full" href="./forgot-password.html">
  546 + Forgot password
  547 + </a>
  548 + </li>
  549 + <li
  550 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  551 + >
  552 + <a class="w-full" href="./404.html">404</a>
  553 + </li>
  554 + <li
  555 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  556 + >
  557 + <a class="w-full" href="./blank.html">Blank</a>
  558 + </li>
  559 + </ul>
  560 + </template>
  561 + </li>
  562 + </ul>
  563 + <div class="px-6 my-6">
  564 + <button
  565 + class="flex items-center justify-between px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  566 + >
  567 + Create account
  568 + <span class="ml-2" aria-hidden="true">+</span>
  569 + </button>
  570 + </div>
  571 + </div>
  572 + </aside>
  573 + <div class="flex flex-col flex-1">
  574 + <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800">
  575 + <div
  576 + class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300"
  577 + >
  578 + <!-- Mobile hamburger -->
  579 + <button
  580 + class="p-1 -ml-1 mr-5 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple"
  581 + @click="toggleSideMenu"
  582 + aria-label="Menu"
  583 + >
  584 + <svg
  585 + class="w-6 h-6"
  586 + aria-hidden="true"
  587 + fill="currentColor"
  588 + viewBox="0 0 20 20"
  589 + >
  590 + <path
  591 + fill-rule="evenodd"
  592 + d="M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z"
  593 + clip-rule="evenodd"
  594 + ></path>
  595 + </svg>
  596 + </button>
  597 + <!-- Search input -->
  598 + <div class="flex justify-center flex-1 lg:mr-32">
  599 + <div
  600 + class="relative w-full max-w-xl mr-6 focus-within:text-purple-500"
  601 + >
  602 + <div class="absolute inset-y-0 flex items-center pl-2">
  603 + <svg
  604 + class="w-4 h-4"
  605 + aria-hidden="true"
  606 + fill="currentColor"
  607 + viewBox="0 0 20 20"
  608 + >
  609 + <path
  610 + fill-rule="evenodd"
  611 + d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z"
  612 + clip-rule="evenodd"
  613 + ></path>
  614 + </svg>
  615 + </div>
  616 + <input
  617 + class="w-full pl-8 pr-2 text-sm text-gray-700 placeholder-gray-600 bg-gray-100 border-0 rounded-md dark:placeholder-gray-500 dark:focus:shadow-outline-gray dark:focus:placeholder-gray-600 dark:bg-gray-700 dark:text-gray-200 focus:placeholder-gray-500 focus:bg-white focus:border-purple-300 focus:outline-none focus:shadow-outline-purple form-input"
  618 + type="text"
  619 + placeholder="Search for projects"
  620 + aria-label="Search"
  621 + />
  622 + </div>
  623 + </div>
  624 + <ul class="flex items-center flex-shrink-0 space-x-6">
  625 + <!-- Theme toggler -->
  626 + <li class="flex">
  627 + <button
  628 + class="rounded-md focus:outline-none focus:shadow-outline-purple"
  629 + @click="toggleTheme"
  630 + aria-label="Toggle color mode"
  631 + >
  632 + <template x-if="!dark">
  633 + <svg
  634 + class="w-5 h-5"
  635 + aria-hidden="true"
  636 + fill="currentColor"
  637 + viewBox="0 0 20 20"
  638 + >
  639 + <path
  640 + d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"
  641 + ></path>
  642 + </svg>
  643 + </template>
  644 + <template x-if="dark">
  645 + <svg
  646 + class="w-5 h-5"
  647 + aria-hidden="true"
  648 + fill="currentColor"
  649 + viewBox="0 0 20 20"
  650 + >
  651 + <path
  652 + fill-rule="evenodd"
  653 + d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z"
  654 + clip-rule="evenodd"
  655 + ></path>
  656 + </svg>
  657 + </template>
  658 + </button>
  659 + </li>
  660 + <!-- Notifications menu -->
  661 + <li class="relative">
  662 + <button
  663 + class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple"
  664 + @click="toggleNotificationsMenu"
  665 + @keydown.escape="closeNotificationsMenu"
  666 + aria-label="Notifications"
  667 + aria-haspopup="true"
  668 + >
  669 + <svg
  670 + class="w-5 h-5"
  671 + aria-hidden="true"
  672 + fill="currentColor"
  673 + viewBox="0 0 20 20"
  674 + >
  675 + <path
  676 + d="M10 2a6 6 0 00-6 6v3.586l-.707.707A1 1 0 004 14h12a1 1 0 00.707-1.707L16 11.586V8a6 6 0 00-6-6zM10 18a3 3 0 01-3-3h6a3 3 0 01-3 3z"
  677 + ></path>
  678 + </svg>
  679 + <!-- Notification badge -->
  680 + <span
  681 + aria-hidden="true"
  682 + class="absolute top-0 right-0 inline-block w-3 h-3 transform translate-x-1 -translate-y-1 bg-red-600 border-2 border-white rounded-full dark:border-gray-800"
  683 + ></span>
  684 + </button>
  685 + <template x-if="isNotificationsMenuOpen">
  686 + <ul
  687 + x-transition:leave="transition ease-in duration-150"
  688 + x-transition:leave-start="opacity-100"
  689 + x-transition:leave-end="opacity-0"
  690 + @click.away="closeNotificationsMenu"
  691 + @keydown.escape="closeNotificationsMenu"
  692 + class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:text-gray-300 dark:border-gray-700 dark:bg-gray-700"
  693 + aria-label="submenu"
  694 + >
  695 + <li class="flex">
  696 + <a
  697 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  698 + href="#"
  699 + >
  700 + <span>Messages</span>
  701 + <span
  702 + class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600"
  703 + >
  704 + 13
  705 + </span>
  706 + </a>
  707 + </li>
  708 + <li class="flex">
  709 + <a
  710 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  711 + href="#"
  712 + >
  713 + <span>Sales</span>
  714 + <span
  715 + class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600"
  716 + >
  717 + 2
  718 + </span>
  719 + </a>
  720 + </li>
  721 + <li class="flex">
  722 + <a
  723 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  724 + href="#"
  725 + >
  726 + <span>Alerts</span>
  727 + </a>
  728 + </li>
  729 + </ul>
  730 + </template>
  731 + </li>
  732 + <!-- Profile menu -->
  733 + <li class="relative">
  734 + <button
  735 + class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none"
  736 + @click="toggleProfileMenu"
  737 + @keydown.escape="closeProfileMenu"
  738 + aria-label="Account"
  739 + aria-haspopup="true"
  740 + >
  741 + <img
  742 + class="object-cover w-8 h-8 rounded-full"
  743 + src="https://images.unsplash.com/photo-1502378735452-bc7d86632805?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&s=aa3a807e1bbdfd4364d1f449eaa96d82"
  744 + alt=""
  745 + aria-hidden="true"
  746 + />
  747 + </button>
  748 + <template x-if="isProfileMenuOpen">
  749 + <ul
  750 + x-transition:leave="transition ease-in duration-150"
  751 + x-transition:leave-start="opacity-100"
  752 + x-transition:leave-end="opacity-0"
  753 + @click.away="closeProfileMenu"
  754 + @keydown.escape="closeProfileMenu"
  755 + class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:border-gray-700 dark:text-gray-300 dark:bg-gray-700"
  756 + aria-label="submenu"
  757 + >
  758 + <li class="flex">
  759 + <a
  760 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  761 + href="#"
  762 + >
  763 + <svg
  764 + class="w-4 h-4 mr-3"
  765 + aria-hidden="true"
  766 + fill="none"
  767 + stroke-linecap="round"
  768 + stroke-linejoin="round"
  769 + stroke-width="2"
  770 + viewBox="0 0 24 24"
  771 + stroke="currentColor"
  772 + >
  773 + <path
  774 + d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"
  775 + ></path>
  776 + </svg>
  777 + <span>Profile</span>
  778 + </a>
  779 + </li>
  780 + <li class="flex">
  781 + <a
  782 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  783 + href="#"
  784 + >
  785 + <svg
  786 + class="w-4 h-4 mr-3"
  787 + aria-hidden="true"
  788 + fill="none"
  789 + stroke-linecap="round"
  790 + stroke-linejoin="round"
  791 + stroke-width="2"
  792 + viewBox="0 0 24 24"
  793 + stroke="currentColor"
  794 + >
  795 + <path
  796 + d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"
  797 + ></path>
  798 + <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
  799 + </svg>
  800 + <span>Settings</span>
  801 + </a>
  802 + </li>
  803 + <li class="flex">
  804 + <a
  805 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  806 + href="#"
  807 + >
  808 + <svg
  809 + class="w-4 h-4 mr-3"
  810 + aria-hidden="true"
  811 + fill="none"
  812 + stroke-linecap="round"
  813 + stroke-linejoin="round"
  814 + stroke-width="2"
  815 + viewBox="0 0 24 24"
  816 + stroke="currentColor"
  817 + >
  818 + <path
  819 + d="M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1"
  820 + ></path>
  821 + </svg>
  822 + <span>Log out</span>
  823 + </a>
  824 + </li>
  825 + </ul>
  826 + </template>
  827 + </li>
  828 + </ul>
  829 + </div>
  830 + </header>
  831 + <main class="h-full pb-16 overflow-y-auto">
  832 + <!-- Remove everything INSIDE this div to a really blank page -->
  833 + <div class="container px-6 mx-auto grid">
  834 + <h2
  835 + class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"
  836 + >
  837 + Blank
  838 + </h2>
  839 + </div>
  840 + </main>
  841 + </div>
  842 + </div>
  843 + </body>
  844 +</html>
html/public/pages/create-account.html
... ... @@ -0,0 +1,139 @@
  1 +<!DOCTYPE html>
  2 +<html :class="{ 'theme-dark': dark }" x-data="data()" lang="en">
  3 + <head>
  4 + <meta charset="UTF-8" />
  5 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6 + <title>Create account - Windmill Dashboard</title>
  7 + <link
  8 + href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"
  9 + rel="stylesheet"
  10 + />
  11 + <link rel="stylesheet" href="../assets/css/tailwind.output.css" />
  12 + <script
  13 + src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js"
  14 + defer
  15 + ></script>
  16 + <script src="../assets/js/init-alpine.js"></script>
  17 + </head>
  18 + <body>
  19 + <div class="flex items-center min-h-screen p-6 bg-gray-50 dark:bg-gray-900">
  20 + <div
  21 + class="flex-1 h-full max-w-4xl mx-auto overflow-hidden bg-white rounded-lg shadow-xl dark:bg-gray-800"
  22 + >
  23 + <div class="flex flex-col overflow-y-auto md:flex-row">
  24 + <div class="h-32 md:h-auto md:w-1/2">
  25 + <img
  26 + aria-hidden="true"
  27 + class="object-cover w-full h-full dark:hidden"
  28 + src="../assets/img/create-account-office.jpeg"
  29 + alt="Office"
  30 + />
  31 + <img
  32 + aria-hidden="true"
  33 + class="hidden object-cover w-full h-full dark:block"
  34 + src="../assets/img/create-account-office-dark.jpeg"
  35 + alt="Office"
  36 + />
  37 + </div>
  38 + <div class="flex items-center justify-center p-6 sm:p-12 md:w-1/2">
  39 + <div class="w-full">
  40 + <h1
  41 + class="mb-4 text-xl font-semibold text-gray-700 dark:text-gray-200"
  42 + >
  43 + Create account
  44 + </h1>
  45 + <label class="block text-sm">
  46 + <span class="text-gray-700 dark:text-gray-400">Email</span>
  47 + <input
  48 + class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
  49 + placeholder="Jane Doe"
  50 + />
  51 + </label>
  52 + <label class="block mt-4 text-sm">
  53 + <span class="text-gray-700 dark:text-gray-400">Password</span>
  54 + <input
  55 + class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
  56 + placeholder="***************"
  57 + type="password"
  58 + />
  59 + </label>
  60 + <label class="block mt-4 text-sm">
  61 + <span class="text-gray-700 dark:text-gray-400">
  62 + Confirm password
  63 + </span>
  64 + <input
  65 + class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
  66 + placeholder="***************"
  67 + type="password"
  68 + />
  69 + </label>
  70 +
  71 + <div class="flex mt-6 text-sm">
  72 + <label class="flex items-center dark:text-gray-400">
  73 + <input
  74 + type="checkbox"
  75 + class="text-purple-600 form-checkbox focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
  76 + />
  77 + <span class="ml-2">
  78 + I agree to the
  79 + <span class="underline">privacy policy</span>
  80 + </span>
  81 + </label>
  82 + </div>
  83 +
  84 + <!-- You should use a button here, as the anchor is only used for the example -->
  85 + <a
  86 + class="block w-full px-4 py-2 mt-4 text-sm font-medium leading-5 text-center text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  87 + href="./login.html"
  88 + >
  89 + Create account
  90 + </a>
  91 +
  92 + <hr class="my-8" />
  93 +
  94 + <button
  95 + class="flex items-center justify-center w-full px-4 py-2 text-sm font-medium leading-5 text-white text-gray-700 transition-colors duration-150 border border-gray-300 rounded-lg dark:text-gray-400 active:bg-transparent hover:border-gray-500 focus:border-gray-500 active:text-gray-500 focus:outline-none focus:shadow-outline-gray"
  96 + >
  97 + <svg
  98 + class="w-4 h-4 mr-2"
  99 + aria-hidden="true"
  100 + viewBox="0 0 24 24"
  101 + fill="currentColor"
  102 + >
  103 + <path
  104 + d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"
  105 + />
  106 + </svg>
  107 + Github
  108 + </button>
  109 + <button
  110 + class="flex items-center justify-center w-full px-4 py-2 mt-4 text-sm font-medium leading-5 text-white text-gray-700 transition-colors duration-150 border border-gray-300 rounded-lg dark:text-gray-400 active:bg-transparent hover:border-gray-500 focus:border-gray-500 active:text-gray-500 focus:outline-none focus:shadow-outline-gray"
  111 + >
  112 + <svg
  113 + class="w-4 h-4 mr-2"
  114 + aria-hidden="true"
  115 + viewBox="0 0 24 24"
  116 + fill="currentColor"
  117 + >
  118 + <path
  119 + d="M23.954 4.569c-.885.389-1.83.654-2.825.775 1.014-.611 1.794-1.574 2.163-2.723-.951.555-2.005.959-3.127 1.184-.896-.959-2.173-1.559-3.591-1.559-2.717 0-4.92 2.203-4.92 4.917 0 .39.045.765.127 1.124C7.691 8.094 4.066 6.13 1.64 3.161c-.427.722-.666 1.561-.666 2.475 0 1.71.87 3.213 2.188 4.096-.807-.026-1.566-.248-2.228-.616v.061c0 2.385 1.693 4.374 3.946 4.827-.413.111-.849.171-1.296.171-.314 0-.615-.03-.916-.086.631 1.953 2.445 3.377 4.604 3.417-1.68 1.319-3.809 2.105-6.102 2.105-.39 0-.779-.023-1.17-.067 2.189 1.394 4.768 2.209 7.557 2.209 9.054 0 13.999-7.496 13.999-13.986 0-.209 0-.42-.015-.63.961-.689 1.8-1.56 2.46-2.548l-.047-.02z"
  120 + />
  121 + </svg>
  122 + Twitter
  123 + </button>
  124 +
  125 + <p class="mt-4">
  126 + <a
  127 + class="text-sm font-medium text-purple-600 dark:text-purple-400 hover:underline"
  128 + href="./login.html"
  129 + >
  130 + Already have an account? Login
  131 + </a>
  132 + </p>
  133 + </div>
  134 + </div>
  135 + </div>
  136 + </div>
  137 + </div>
  138 + </body>
  139 +</html>
html/public/pages/forgot-password.html
... ... @@ -0,0 +1,66 @@
  1 +<!DOCTYPE html>
  2 +<html :class="{ 'theme-dark': dark }" x-data="data()" lang="en">
  3 + <head>
  4 + <meta charset="UTF-8" />
  5 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6 + <title>Forgot password - Windmill Dashboard</title>
  7 + <link
  8 + href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"
  9 + rel="stylesheet"
  10 + />
  11 + <link rel="stylesheet" href="../assets/css/tailwind.output.css" />
  12 + <script
  13 + src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js"
  14 + defer
  15 + ></script>
  16 + <script src="../assets/js/init-alpine.js"></script>
  17 + </head>
  18 + <body>
  19 + <div class="flex items-center min-h-screen p-6 bg-gray-50 dark:bg-gray-900">
  20 + <div
  21 + class="flex-1 h-full max-w-4xl mx-auto overflow-hidden bg-white rounded-lg shadow-xl dark:bg-gray-800"
  22 + >
  23 + <div class="flex flex-col overflow-y-auto md:flex-row">
  24 + <div class="h-32 md:h-auto md:w-1/2">
  25 + <img
  26 + aria-hidden="true"
  27 + class="object-cover w-full h-full dark:hidden"
  28 + src="../assets/img/forgot-password-office.jpeg"
  29 + alt="Office"
  30 + />
  31 + <img
  32 + aria-hidden="true"
  33 + class="hidden object-cover w-full h-full dark:block"
  34 + src="../assets/img/forgot-password-office-dark.jpeg"
  35 + alt="Office"
  36 + />
  37 + </div>
  38 + <div class="flex items-center justify-center p-6 sm:p-12 md:w-1/2">
  39 + <div class="w-full">
  40 + <h1
  41 + class="mb-4 text-xl font-semibold text-gray-700 dark:text-gray-200"
  42 + >
  43 + Forgot password
  44 + </h1>
  45 + <label class="block text-sm">
  46 + <span class="text-gray-700 dark:text-gray-400">Email</span>
  47 + <input
  48 + class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
  49 + placeholder="Jane Doe"
  50 + />
  51 + </label>
  52 +
  53 + <!-- You should use a button here, as the anchor is only used for the example -->
  54 + <a
  55 + class="block w-full px-4 py-2 mt-4 text-sm font-medium leading-5 text-center text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  56 + href="./login.html"
  57 + >
  58 + Recover password
  59 + </a>
  60 + </div>
  61 + </div>
  62 + </div>
  63 + </div>
  64 + </div>
  65 + </body>
  66 +</html>
html/public/pages/login.html
... ... @@ -0,0 +1,124 @@
  1 +<!DOCTYPE html>
  2 +<html :class="{ 'theme-dark': dark }" x-data="data()" lang="en">
  3 + <head>
  4 + <meta charset="UTF-8" />
  5 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6 + <title>Login - Windmill Dashboard</title>
  7 + <link
  8 + href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"
  9 + rel="stylesheet"
  10 + />
  11 + <link rel="stylesheet" href="../assets/css/tailwind.output.css" />
  12 + <!--<script
  13 + src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js"
  14 + defer
  15 + ></script>-->
  16 + <script src="../assets/js/init-alpine.js"></script>
  17 + </head>
  18 + <body>
  19 + <div class="flex items-center min-h-screen p-6 bg-gray-50 dark:bg-gray-900">
  20 + <div
  21 + class="flex-1 h-full max-w-4xl mx-auto overflow-hidden bg-white rounded-lg shadow-xl dark:bg-gray-800"
  22 + >
  23 + <div class="flex flex-col overflow-y-auto md:flex-row">
  24 + <div class="h-32 md:h-auto md:w-1/2">
  25 + <img
  26 + aria-hidden="true"
  27 + class="object-cover w-full h-full dark:hidden"
  28 + src="../assets/img/login-office.jpeg"
  29 + alt="Office"
  30 + />
  31 + <img
  32 + aria-hidden="true"
  33 + class="hidden object-cover w-full h-full dark:block"
  34 + src="../assets/img/login-office-dark.jpeg"
  35 + alt="Office"
  36 + />
  37 + </div>
  38 + <div class="flex items-center justify-center p-6 sm:p-12 md:w-1/2">
  39 + <div class="w-full">
  40 + <h1
  41 + class="mb-4 text-xl font-semibold text-gray-700 dark:text-gray-200"
  42 + >
  43 + Login
  44 + </h1>
  45 + <label class="block text-sm">
  46 + <span class="text-gray-700 dark:text-gray-400">Email</span>
  47 + <input
  48 + class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
  49 + placeholder="Jane Doe"
  50 + />
  51 + </label>
  52 + <label class="block mt-4 text-sm">
  53 + <span class="text-gray-700 dark:text-gray-400">Password</span>
  54 + <input
  55 + class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
  56 + placeholder="***************"
  57 + type="password"
  58 + />
  59 + </label>
  60 +
  61 + <!-- You should use a button here, as the anchor is only used for the example -->
  62 + <a
  63 + class="block w-full px-4 py-2 mt-4 text-sm font-medium leading-5 text-center text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  64 + href="../index.html"
  65 + >
  66 + Log in
  67 + </a>
  68 +
  69 + <hr class="my-8" />
  70 +
  71 + <button
  72 + class="flex items-center justify-center w-full px-4 py-2 text-sm font-medium leading-5 text-white text-gray-700 transition-colors duration-150 border border-gray-300 rounded-lg dark:text-gray-400 active:bg-transparent hover:border-gray-500 focus:border-gray-500 active:text-gray-500 focus:outline-none focus:shadow-outline-gray"
  73 + >
  74 + <svg
  75 + class="w-4 h-4 mr-2"
  76 + aria-hidden="true"
  77 + viewBox="0 0 24 24"
  78 + fill="currentColor"
  79 + >
  80 + <path
  81 + d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"
  82 + />
  83 + </svg>
  84 + Github
  85 + </button>
  86 + <button
  87 + class="flex items-center justify-center w-full px-4 py-2 mt-4 text-sm font-medium leading-5 text-white text-gray-700 transition-colors duration-150 border border-gray-300 rounded-lg dark:text-gray-400 active:bg-transparent hover:border-gray-500 focus:border-gray-500 active:text-gray-500 focus:outline-none focus:shadow-outline-gray"
  88 + >
  89 + <svg
  90 + class="w-4 h-4 mr-2"
  91 + aria-hidden="true"
  92 + viewBox="0 0 24 24"
  93 + fill="currentColor"
  94 + >
  95 + <path
  96 + d="M23.954 4.569c-.885.389-1.83.654-2.825.775 1.014-.611 1.794-1.574 2.163-2.723-.951.555-2.005.959-3.127 1.184-.896-.959-2.173-1.559-3.591-1.559-2.717 0-4.92 2.203-4.92 4.917 0 .39.045.765.127 1.124C7.691 8.094 4.066 6.13 1.64 3.161c-.427.722-.666 1.561-.666 2.475 0 1.71.87 3.213 2.188 4.096-.807-.026-1.566-.248-2.228-.616v.061c0 2.385 1.693 4.374 3.946 4.827-.413.111-.849.171-1.296.171-.314 0-.615-.03-.916-.086.631 1.953 2.445 3.377 4.604 3.417-1.68 1.319-3.809 2.105-6.102 2.105-.39 0-.779-.023-1.17-.067 2.189 1.394 4.768 2.209 7.557 2.209 9.054 0 13.999-7.496 13.999-13.986 0-.209 0-.42-.015-.63.961-.689 1.8-1.56 2.46-2.548l-.047-.02z"
  97 + />
  98 + </svg>
  99 + Twitter
  100 + </button>
  101 +
  102 + <p class="mt-4">
  103 + <a
  104 + class="text-sm font-medium text-purple-600 dark:text-purple-400 hover:underline"
  105 + href="./forgot-password.html"
  106 + >
  107 + Forgot your password?
  108 + </a>
  109 + </p>
  110 + <p class="mt-1">
  111 + <a
  112 + class="text-sm font-medium text-purple-600 dark:text-purple-400 hover:underline"
  113 + href="./create-account.html"
  114 + >
  115 + Create account
  116 + </a>
  117 + </p>
  118 + </div>
  119 + </div>
  120 + </div>
  121 + </div>
  122 + </div>
  123 + </body>
  124 +</html>
html/public/tables.html
Changes suppressed. Click to show
... ... @@ -0,0 +1,2161 @@
  1 +<!DOCTYPE html>
  2 +<html :class="{ 'theme-dark': dark }" x-data="data()" lang="en">
  3 + <head>
  4 + <meta charset="UTF-8" />
  5 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6 + <title>Tables - Windmill Dashboard</title>
  7 + <link
  8 + href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"
  9 + rel="stylesheet"
  10 + />
  11 + <link rel="stylesheet" href="./assets/css/tailwind.output.css" />
  12 + <script
  13 + src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js"
  14 + defer
  15 + ></script>
  16 + <script src="./assets/js/init-alpine.js"></script>
  17 + </head>
  18 + <body>
  19 + <div
  20 + class="flex h-screen bg-gray-50 dark:bg-gray-900"
  21 + :class="{ 'overflow-hidden': isSideMenuOpen}"
  22 + >
  23 + <!-- Desktop sidebar -->
  24 + <aside
  25 + class="z-20 flex-shrink-0 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block"
  26 + >
  27 + <div class="py-4 text-gray-500 dark:text-gray-400">
  28 + <a
  29 + class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
  30 + href="#"
  31 + >
  32 + Windmill
  33 + </a>
  34 + <ul class="mt-6">
  35 + <li class="relative px-6 py-3">
  36 + <a
  37 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  38 + href="index.html"
  39 + >
  40 + <svg
  41 + class="w-5 h-5"
  42 + aria-hidden="true"
  43 + fill="none"
  44 + stroke-linecap="round"
  45 + stroke-linejoin="round"
  46 + stroke-width="2"
  47 + viewBox="0 0 24 24"
  48 + stroke="currentColor"
  49 + >
  50 + <path
  51 + d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"
  52 + ></path>
  53 + </svg>
  54 + <span class="ml-4">Dashboard</span>
  55 + </a>
  56 + </li>
  57 + </ul>
  58 + <ul>
  59 + <li class="relative px-6 py-3">
  60 + <a
  61 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  62 + href="forms.html"
  63 + >
  64 + <svg
  65 + class="w-5 h-5"
  66 + aria-hidden="true"
  67 + fill="none"
  68 + stroke-linecap="round"
  69 + stroke-linejoin="round"
  70 + stroke-width="2"
  71 + viewBox="0 0 24 24"
  72 + stroke="currentColor"
  73 + >
  74 + <path
  75 + d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
  76 + ></path>
  77 + </svg>
  78 + <span class="ml-4">Forms</span>
  79 + </a>
  80 + </li>
  81 + <li class="relative px-6 py-3">
  82 + <a
  83 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  84 + href="cards.html"
  85 + >
  86 + <svg
  87 + class="w-5 h-5"
  88 + aria-hidden="true"
  89 + fill="none"
  90 + stroke-linecap="round"
  91 + stroke-linejoin="round"
  92 + stroke-width="2"
  93 + viewBox="0 0 24 24"
  94 + stroke="currentColor"
  95 + >
  96 + <path
  97 + d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"
  98 + ></path>
  99 + </svg>
  100 + <span class="ml-4">Cards</span>
  101 + </a>
  102 + </li>
  103 + <li class="relative px-6 py-3">
  104 + <a
  105 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  106 + href="charts.html"
  107 + >
  108 + <svg
  109 + class="w-5 h-5"
  110 + aria-hidden="true"
  111 + fill="none"
  112 + stroke-linecap="round"
  113 + stroke-linejoin="round"
  114 + stroke-width="2"
  115 + viewBox="0 0 24 24"
  116 + stroke="currentColor"
  117 + >
  118 + <path
  119 + d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
  120 + ></path>
  121 + <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
  122 + </svg>
  123 + <span class="ml-4">Charts</span>
  124 + </a>
  125 + </li>
  126 + <li class="relative px-6 py-3">
  127 + <a
  128 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  129 + href="buttons.html"
  130 + >
  131 + <svg
  132 + class="w-5 h-5"
  133 + aria-hidden="true"
  134 + fill="none"
  135 + stroke-linecap="round"
  136 + stroke-linejoin="round"
  137 + stroke-width="2"
  138 + viewBox="0 0 24 24"
  139 + stroke="currentColor"
  140 + >
  141 + <path
  142 + d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"
  143 + ></path>
  144 + </svg>
  145 + <span class="ml-4">Buttons</span>
  146 + </a>
  147 + </li>
  148 + <li class="relative px-6 py-3">
  149 + <a
  150 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  151 + href="modals.html"
  152 + >
  153 + <svg
  154 + class="w-5 h-5"
  155 + aria-hidden="true"
  156 + fill="none"
  157 + stroke-linecap="round"
  158 + stroke-linejoin="round"
  159 + stroke-width="2"
  160 + viewBox="0 0 24 24"
  161 + stroke="currentColor"
  162 + >
  163 + <path
  164 + d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"
  165 + ></path>
  166 + </svg>
  167 + <span class="ml-4">Modals</span>
  168 + </a>
  169 + </li>
  170 + <li class="relative px-6 py-3">
  171 + <span
  172 + class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
  173 + aria-hidden="true"
  174 + ></span>
  175 + <a
  176 + class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100"
  177 + href="tables.html"
  178 + >
  179 + <svg
  180 + class="w-5 h-5"
  181 + aria-hidden="true"
  182 + fill="none"
  183 + stroke-linecap="round"
  184 + stroke-linejoin="round"
  185 + stroke-width="2"
  186 + viewBox="0 0 24 24"
  187 + stroke="currentColor"
  188 + >
  189 + <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
  190 + </svg>
  191 + <span class="ml-4">Tables</span>
  192 + </a>
  193 + </li>
  194 + <li class="relative px-6 py-3">
  195 + <button
  196 + class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  197 + @click="togglePagesMenu"
  198 + aria-haspopup="true"
  199 + >
  200 + <span class="inline-flex items-center">
  201 + <svg
  202 + class="w-5 h-5"
  203 + aria-hidden="true"
  204 + fill="none"
  205 + stroke-linecap="round"
  206 + stroke-linejoin="round"
  207 + stroke-width="2"
  208 + viewBox="0 0 24 24"
  209 + stroke="currentColor"
  210 + >
  211 + <path
  212 + d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"
  213 + ></path>
  214 + </svg>
  215 + <span class="ml-4">Pages</span>
  216 + </span>
  217 + <svg
  218 + class="w-4 h-4"
  219 + aria-hidden="true"
  220 + fill="currentColor"
  221 + viewBox="0 0 20 20"
  222 + >
  223 + <path
  224 + fill-rule="evenodd"
  225 + d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
  226 + clip-rule="evenodd"
  227 + ></path>
  228 + </svg>
  229 + </button>
  230 + <template x-if="isPagesMenuOpen">
  231 + <ul
  232 + x-transition:enter="transition-all ease-in-out duration-300"
  233 + x-transition:enter-start="opacity-25 max-h-0"
  234 + x-transition:enter-end="opacity-100 max-h-xl"
  235 + x-transition:leave="transition-all ease-in-out duration-300"
  236 + x-transition:leave-start="opacity-100 max-h-xl"
  237 + x-transition:leave-end="opacity-0 max-h-0"
  238 + class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900"
  239 + aria-label="submenu"
  240 + >
  241 + <li
  242 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  243 + >
  244 + <a class="w-full" href="pages/login.html">Login</a>
  245 + </li>
  246 + <li
  247 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  248 + >
  249 + <a class="w-full" href="pages/create-account.html">
  250 + Create account
  251 + </a>
  252 + </li>
  253 + <li
  254 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  255 + >
  256 + <a class="w-full" href="pages/forgot-password.html">
  257 + Forgot password
  258 + </a>
  259 + </li>
  260 + <li
  261 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  262 + >
  263 + <a class="w-full" href="pages/404.html">404</a>
  264 + </li>
  265 + <li
  266 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  267 + >
  268 + <a class="w-full" href="pages/blank.html">Blank</a>
  269 + </li>
  270 + </ul>
  271 + </template>
  272 + </li>
  273 + </ul>
  274 + <div class="px-6 my-6">
  275 + <button
  276 + class="flex items-center justify-between w-full px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  277 + >
  278 + Create account
  279 + <span class="ml-2" aria-hidden="true">+</span>
  280 + </button>
  281 + </div>
  282 + </div>
  283 + </aside>
  284 + <!-- Mobile sidebar -->
  285 + <!-- Backdrop -->
  286 + <div
  287 + x-show="isSideMenuOpen"
  288 + x-transition:enter="transition ease-in-out duration-150"
  289 + x-transition:enter-start="opacity-0"
  290 + x-transition:enter-end="opacity-100"
  291 + x-transition:leave="transition ease-in-out duration-150"
  292 + x-transition:leave-start="opacity-100"
  293 + x-transition:leave-end="opacity-0"
  294 + class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center"
  295 + ></div>
  296 + <aside
  297 + class="fixed inset-y-0 z-20 flex-shrink-0 w-64 mt-16 overflow-y-auto bg-white dark:bg-gray-800 md:hidden"
  298 + x-show="isSideMenuOpen"
  299 + x-transition:enter="transition ease-in-out duration-150"
  300 + x-transition:enter-start="opacity-0 transform -translate-x-20"
  301 + x-transition:enter-end="opacity-100"
  302 + x-transition:leave="transition ease-in-out duration-150"
  303 + x-transition:leave-start="opacity-100"
  304 + x-transition:leave-end="opacity-0 transform -translate-x-20"
  305 + @click.away="closeSideMenu"
  306 + @keydown.escape="closeSideMenu"
  307 + >
  308 + <div class="py-4 text-gray-500 dark:text-gray-400">
  309 + <a
  310 + class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
  311 + href="#"
  312 + >
  313 + Windmill
  314 + </a>
  315 + <ul class="mt-6">
  316 + <li class="relative px-6 py-3">
  317 + <a
  318 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  319 + href="index.html"
  320 + >
  321 + <svg
  322 + class="w-5 h-5"
  323 + aria-hidden="true"
  324 + fill="none"
  325 + stroke-linecap="round"
  326 + stroke-linejoin="round"
  327 + stroke-width="2"
  328 + viewBox="0 0 24 24"
  329 + stroke="currentColor"
  330 + >
  331 + <path
  332 + d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"
  333 + ></path>
  334 + </svg>
  335 + <span class="ml-4">Dashboard</span>
  336 + </a>
  337 + </li>
  338 + </ul>
  339 + <ul>
  340 + <li class="relative px-6 py-3">
  341 + <a
  342 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  343 + href="forms.html"
  344 + >
  345 + <svg
  346 + class="w-5 h-5"
  347 + aria-hidden="true"
  348 + fill="none"
  349 + stroke-linecap="round"
  350 + stroke-linejoin="round"
  351 + stroke-width="2"
  352 + viewBox="0 0 24 24"
  353 + stroke="currentColor"
  354 + >
  355 + <path
  356 + d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
  357 + ></path>
  358 + </svg>
  359 + <span class="ml-4">Forms</span>
  360 + </a>
  361 + </li>
  362 + <li class="relative px-6 py-3">
  363 + <a
  364 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  365 + href="cards.html"
  366 + >
  367 + <svg
  368 + class="w-5 h-5"
  369 + aria-hidden="true"
  370 + fill="none"
  371 + stroke-linecap="round"
  372 + stroke-linejoin="round"
  373 + stroke-width="2"
  374 + viewBox="0 0 24 24"
  375 + stroke="currentColor"
  376 + >
  377 + <path
  378 + d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"
  379 + ></path>
  380 + </svg>
  381 + <span class="ml-4">Cards</span>
  382 + </a>
  383 + </li>
  384 + <li class="relative px-6 py-3">
  385 + <a
  386 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  387 + href="charts.html"
  388 + >
  389 + <svg
  390 + class="w-5 h-5"
  391 + aria-hidden="true"
  392 + fill="none"
  393 + stroke-linecap="round"
  394 + stroke-linejoin="round"
  395 + stroke-width="2"
  396 + viewBox="0 0 24 24"
  397 + stroke="currentColor"
  398 + >
  399 + <path
  400 + d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
  401 + ></path>
  402 + <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
  403 + </svg>
  404 + <span class="ml-4">Charts</span>
  405 + </a>
  406 + </li>
  407 + <li class="relative px-6 py-3">
  408 + <a
  409 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  410 + href="buttons.html"
  411 + >
  412 + <svg
  413 + class="w-5 h-5"
  414 + aria-hidden="true"
  415 + fill="none"
  416 + stroke-linecap="round"
  417 + stroke-linejoin="round"
  418 + stroke-width="2"
  419 + viewBox="0 0 24 24"
  420 + stroke="currentColor"
  421 + >
  422 + <path
  423 + d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"
  424 + ></path>
  425 + </svg>
  426 + <span class="ml-4">Buttons</span>
  427 + </a>
  428 + </li>
  429 + <li class="relative px-6 py-3">
  430 + <a
  431 + class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  432 + href="modals.html"
  433 + >
  434 + <svg
  435 + class="w-5 h-5"
  436 + aria-hidden="true"
  437 + fill="none"
  438 + stroke-linecap="round"
  439 + stroke-linejoin="round"
  440 + stroke-width="2"
  441 + viewBox="0 0 24 24"
  442 + stroke="currentColor"
  443 + >
  444 + <path
  445 + d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"
  446 + ></path>
  447 + </svg>
  448 + <span class="ml-4">Modals</span>
  449 + </a>
  450 + </li>
  451 + <li class="relative px-6 py-3">
  452 + <span
  453 + class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
  454 + aria-hidden="true"
  455 + ></span>
  456 + <a
  457 + class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100"
  458 + href="tables.html"
  459 + >
  460 + <svg
  461 + class="w-5 h-5"
  462 + aria-hidden="true"
  463 + fill="none"
  464 + stroke-linecap="round"
  465 + stroke-linejoin="round"
  466 + stroke-width="2"
  467 + viewBox="0 0 24 24"
  468 + stroke="currentColor"
  469 + >
  470 + <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
  471 + </svg>
  472 + <span class="ml-4">Tables</span>
  473 + </a>
  474 + </li>
  475 + <li class="relative px-6 py-3">
  476 + <button
  477 + class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  478 + @click="togglePagesMenu"
  479 + aria-haspopup="true"
  480 + >
  481 + <span class="inline-flex items-center">
  482 + <svg
  483 + class="w-5 h-5"
  484 + aria-hidden="true"
  485 + fill="none"
  486 + stroke-linecap="round"
  487 + stroke-linejoin="round"
  488 + stroke-width="2"
  489 + viewBox="0 0 24 24"
  490 + stroke="currentColor"
  491 + >
  492 + <path
  493 + d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"
  494 + ></path>
  495 + </svg>
  496 + <span class="ml-4">Pages</span>
  497 + </span>
  498 + <svg
  499 + class="w-4 h-4"
  500 + aria-hidden="true"
  501 + fill="currentColor"
  502 + viewBox="0 0 20 20"
  503 + >
  504 + <path
  505 + fill-rule="evenodd"
  506 + d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
  507 + clip-rule="evenodd"
  508 + ></path>
  509 + </svg>
  510 + </button>
  511 + <template x-if="isPagesMenuOpen">
  512 + <ul
  513 + x-transition:enter="transition-all ease-in-out duration-300"
  514 + x-transition:enter-start="opacity-25 max-h-0"
  515 + x-transition:enter-end="opacity-100 max-h-xl"
  516 + x-transition:leave="transition-all ease-in-out duration-300"
  517 + x-transition:leave-start="opacity-100 max-h-xl"
  518 + x-transition:leave-end="opacity-0 max-h-0"
  519 + class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900"
  520 + aria-label="submenu"
  521 + >
  522 + <li
  523 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  524 + >
  525 + <a class="w-full" href="pages/login.html">Login</a>
  526 + </li>
  527 + <li
  528 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  529 + >
  530 + <a class="w-full" href="pages/create-account.html">
  531 + Create account
  532 + </a>
  533 + </li>
  534 + <li
  535 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  536 + >
  537 + <a class="w-full" href="pages/forgot-password.html">
  538 + Forgot password
  539 + </a>
  540 + </li>
  541 + <li
  542 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  543 + >
  544 + <a class="w-full" href="pages/404.html">404</a>
  545 + </li>
  546 + <li
  547 + class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
  548 + >
  549 + <a class="w-full" href="pages/blank.html">Blank</a>
  550 + </li>
  551 + </ul>
  552 + </template>
  553 + </li>
  554 + </ul>
  555 + <div class="px-6 my-6">
  556 + <button
  557 + class="flex items-center justify-between px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
  558 + >
  559 + Create account
  560 + <span class="ml-2" aria-hidden="true">+</span>
  561 + </button>
  562 + </div>
  563 + </div>
  564 + </aside>
  565 + <div class="flex flex-col flex-1 w-full">
  566 + <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800">
  567 + <div
  568 + class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300"
  569 + >
  570 + <!-- Mobile hamburger -->
  571 + <button
  572 + class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple"
  573 + @click="toggleSideMenu"
  574 + aria-label="Menu"
  575 + >
  576 + <svg
  577 + class="w-6 h-6"
  578 + aria-hidden="true"
  579 + fill="currentColor"
  580 + viewBox="0 0 20 20"
  581 + >
  582 + <path
  583 + fill-rule="evenodd"
  584 + d="M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z"
  585 + clip-rule="evenodd"
  586 + ></path>
  587 + </svg>
  588 + </button>
  589 + <!-- Search input -->
  590 + <div class="flex justify-center flex-1 lg:mr-32">
  591 + <div
  592 + class="relative w-full max-w-xl mr-6 focus-within:text-purple-500"
  593 + >
  594 + <div class="absolute inset-y-0 flex items-center pl-2">
  595 + <svg
  596 + class="w-4 h-4"
  597 + aria-hidden="true"
  598 + fill="currentColor"
  599 + viewBox="0 0 20 20"
  600 + >
  601 + <path
  602 + fill-rule="evenodd"
  603 + d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z"
  604 + clip-rule="evenodd"
  605 + ></path>
  606 + </svg>
  607 + </div>
  608 + <input
  609 + class="w-full pl-8 pr-2 text-sm text-gray-700 placeholder-gray-600 bg-gray-100 border-0 rounded-md dark:placeholder-gray-500 dark:focus:shadow-outline-gray dark:focus:placeholder-gray-600 dark:bg-gray-700 dark:text-gray-200 focus:placeholder-gray-500 focus:bg-white focus:border-purple-300 focus:outline-none focus:shadow-outline-purple form-input"
  610 + type="text"
  611 + placeholder="Search for projects"
  612 + aria-label="Search"
  613 + />
  614 + </div>
  615 + </div>
  616 + <ul class="flex items-center flex-shrink-0 space-x-6">
  617 + <!-- Theme toggler -->
  618 + <li class="flex">
  619 + <button
  620 + class="rounded-md focus:outline-none focus:shadow-outline-purple"
  621 + @click="toggleTheme"
  622 + aria-label="Toggle color mode"
  623 + >
  624 + <template x-if="!dark">
  625 + <svg
  626 + class="w-5 h-5"
  627 + aria-hidden="true"
  628 + fill="currentColor"
  629 + viewBox="0 0 20 20"
  630 + >
  631 + <path
  632 + d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"
  633 + ></path>
  634 + </svg>
  635 + </template>
  636 + <template x-if="dark">
  637 + <svg
  638 + class="w-5 h-5"
  639 + aria-hidden="true"
  640 + fill="currentColor"
  641 + viewBox="0 0 20 20"
  642 + >
  643 + <path
  644 + fill-rule="evenodd"
  645 + d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z"
  646 + clip-rule="evenodd"
  647 + ></path>
  648 + </svg>
  649 + </template>
  650 + </button>
  651 + </li>
  652 + <!-- Notifications menu -->
  653 + <li class="relative">
  654 + <button
  655 + class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple"
  656 + @click="toggleNotificationsMenu"
  657 + @keydown.escape="closeNotificationsMenu"
  658 + aria-label="Notifications"
  659 + aria-haspopup="true"
  660 + >
  661 + <svg
  662 + class="w-5 h-5"
  663 + aria-hidden="true"
  664 + fill="currentColor"
  665 + viewBox="0 0 20 20"
  666 + >
  667 + <path
  668 + d="M10 2a6 6 0 00-6 6v3.586l-.707.707A1 1 0 004 14h12a1 1 0 00.707-1.707L16 11.586V8a6 6 0 00-6-6zM10 18a3 3 0 01-3-3h6a3 3 0 01-3 3z"
  669 + ></path>
  670 + </svg>
  671 + <!-- Notification badge -->
  672 + <span
  673 + aria-hidden="true"
  674 + class="absolute top-0 right-0 inline-block w-3 h-3 transform translate-x-1 -translate-y-1 bg-red-600 border-2 border-white rounded-full dark:border-gray-800"
  675 + ></span>
  676 + </button>
  677 + <template x-if="isNotificationsMenuOpen">
  678 + <ul
  679 + x-transition:leave="transition ease-in duration-150"
  680 + x-transition:leave-start="opacity-100"
  681 + x-transition:leave-end="opacity-0"
  682 + @click.away="closeNotificationsMenu"
  683 + @keydown.escape="closeNotificationsMenu"
  684 + class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:text-gray-300 dark:border-gray-700 dark:bg-gray-700"
  685 + aria-label="submenu"
  686 + >
  687 + <li class="flex">
  688 + <a
  689 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  690 + href="#"
  691 + >
  692 + <span>Messages</span>
  693 + <span
  694 + class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600"
  695 + >
  696 + 13
  697 + </span>
  698 + </a>
  699 + </li>
  700 + <li class="flex">
  701 + <a
  702 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  703 + href="#"
  704 + >
  705 + <span>Sales</span>
  706 + <span
  707 + class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600"
  708 + >
  709 + 2
  710 + </span>
  711 + </a>
  712 + </li>
  713 + <li class="flex">
  714 + <a
  715 + class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  716 + href="#"
  717 + >
  718 + <span>Alerts</span>
  719 + </a>
  720 + </li>
  721 + </ul>
  722 + </template>
  723 + </li>
  724 + <!-- Profile menu -->
  725 + <li class="relative">
  726 + <button
  727 + class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none"
  728 + @click="toggleProfileMenu"
  729 + @keydown.escape="closeProfileMenu"
  730 + aria-label="Account"
  731 + aria-haspopup="true"
  732 + >
  733 + <img
  734 + class="object-cover w-8 h-8 rounded-full"
  735 + src="https://images.unsplash.com/photo-1502378735452-bc7d86632805?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&s=aa3a807e1bbdfd4364d1f449eaa96d82"
  736 + alt=""
  737 + aria-hidden="true"
  738 + />
  739 + </button>
  740 + <template x-if="isProfileMenuOpen">
  741 + <ul
  742 + x-transition:leave="transition ease-in duration-150"
  743 + x-transition:leave-start="opacity-100"
  744 + x-transition:leave-end="opacity-0"
  745 + @click.away="closeProfileMenu"
  746 + @keydown.escape="closeProfileMenu"
  747 + class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:border-gray-700 dark:text-gray-300 dark:bg-gray-700"
  748 + aria-label="submenu"
  749 + >
  750 + <li class="flex">
  751 + <a
  752 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  753 + href="#"
  754 + >
  755 + <svg
  756 + class="w-4 h-4 mr-3"
  757 + aria-hidden="true"
  758 + fill="none"
  759 + stroke-linecap="round"
  760 + stroke-linejoin="round"
  761 + stroke-width="2"
  762 + viewBox="0 0 24 24"
  763 + stroke="currentColor"
  764 + >
  765 + <path
  766 + d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"
  767 + ></path>
  768 + </svg>
  769 + <span>Profile</span>
  770 + </a>
  771 + </li>
  772 + <li class="flex">
  773 + <a
  774 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  775 + href="#"
  776 + >
  777 + <svg
  778 + class="w-4 h-4 mr-3"
  779 + aria-hidden="true"
  780 + fill="none"
  781 + stroke-linecap="round"
  782 + stroke-linejoin="round"
  783 + stroke-width="2"
  784 + viewBox="0 0 24 24"
  785 + stroke="currentColor"
  786 + >
  787 + <path
  788 + d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"
  789 + ></path>
  790 + <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
  791 + </svg>
  792 + <span>Settings</span>
  793 + </a>
  794 + </li>
  795 + <li class="flex">
  796 + <a
  797 + class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
  798 + href="#"
  799 + >
  800 + <svg
  801 + class="w-4 h-4 mr-3"
  802 + aria-hidden="true"
  803 + fill="none"
  804 + stroke-linecap="round"
  805 + stroke-linejoin="round"
  806 + stroke-width="2"
  807 + viewBox="0 0 24 24"
  808 + stroke="currentColor"
  809 + >
  810 + <path
  811 + d="M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1"
  812 + ></path>
  813 + </svg>
  814 + <span>Log out</span>
  815 + </a>
  816 + </li>
  817 + </ul>
  818 + </template>
  819 + </li>
  820 + </ul>
  821 + </div>
  822 + </header>
  823 + <main class="h-full pb-16 overflow-y-auto">
  824 + <div class="container grid px-6 mx-auto">
  825 + <h2
  826 + class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"
  827 + >
  828 + Tables
  829 + </h2>
  830 + <!-- CTA -->
  831 + <a
  832 + class="flex items-center justify-between p-4 mb-8 text-sm font-semibold text-purple-100 bg-purple-600 rounded-lg shadow-md focus:outline-none focus:shadow-outline-purple"
  833 + href="https://github.com/estevanmaito/windmill-dashboard"
  834 + >
  835 + <div class="flex items-center">
  836 + <svg
  837 + class="w-5 h-5 mr-2"
  838 + fill="currentColor"
  839 + viewBox="0 0 20 20"
  840 + >
  841 + <path
  842 + d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"
  843 + ></path>
  844 + </svg>
  845 + <span>Star this project on GitHub</span>
  846 + </div>
  847 + <span>View more &RightArrow;</span>
  848 + </a>
  849 +
  850 + <!-- With avatar -->
  851 + <h4
  852 + class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
  853 + >
  854 + Table with avatars
  855 + </h4>
  856 + <div class="w-full mb-8 overflow-hidden rounded-lg shadow-xs">
  857 + <div class="w-full overflow-x-auto">
  858 + <table class="w-full whitespace-no-wrap">
  859 + <thead>
  860 + <tr
  861 + class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800"
  862 + >
  863 + <th class="px-4 py-3">Client</th>
  864 + <th class="px-4 py-3">Amount</th>
  865 + <th class="px-4 py-3">Status</th>
  866 + <th class="px-4 py-3">Date</th>
  867 + </tr>
  868 + </thead>
  869 + <tbody
  870 + class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"
  871 + >
  872 + <tr class="text-gray-700 dark:text-gray-400">
  873 + <td class="px-4 py-3">
  874 + <div class="flex items-center text-sm">
  875 + <!-- Avatar with inset shadow -->
  876 + <div
  877 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  878 + >
  879 + <img
  880 + class="object-cover w-full h-full rounded-full"
  881 + src="https://images.unsplash.com/flagged/photo-1570612861542-284f4c12e75f?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
  882 + alt=""
  883 + loading="lazy"
  884 + />
  885 + <div
  886 + class="absolute inset-0 rounded-full shadow-inner"
  887 + aria-hidden="true"
  888 + ></div>
  889 + </div>
  890 + <div>
  891 + <p class="font-semibold">Hans Burger</p>
  892 + <p class="text-xs text-gray-600 dark:text-gray-400">
  893 + 10x Developer
  894 + </p>
  895 + </div>
  896 + </div>
  897 + </td>
  898 + <td class="px-4 py-3 text-sm">
  899 + $ 863.45
  900 + </td>
  901 + <td class="px-4 py-3 text-xs">
  902 + <span
  903 + class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
  904 + >
  905 + Approved
  906 + </span>
  907 + </td>
  908 + <td class="px-4 py-3 text-sm">
  909 + 6/10/2020
  910 + </td>
  911 + </tr>
  912 +
  913 + <tr class="text-gray-700 dark:text-gray-400">
  914 + <td class="px-4 py-3">
  915 + <div class="flex items-center text-sm">
  916 + <!-- Avatar with inset shadow -->
  917 + <div
  918 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  919 + >
  920 + <img
  921 + class="object-cover w-full h-full rounded-full"
  922 + src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&facepad=3&fit=facearea&s=707b9c33066bf8808c934c8ab394dff6"
  923 + alt=""
  924 + loading="lazy"
  925 + />
  926 + <div
  927 + class="absolute inset-0 rounded-full shadow-inner"
  928 + aria-hidden="true"
  929 + ></div>
  930 + </div>
  931 + <div>
  932 + <p class="font-semibold">Jolina Angelie</p>
  933 + <p class="text-xs text-gray-600 dark:text-gray-400">
  934 + Unemployed
  935 + </p>
  936 + </div>
  937 + </div>
  938 + </td>
  939 + <td class="px-4 py-3 text-sm">
  940 + $ 369.95
  941 + </td>
  942 + <td class="px-4 py-3 text-xs">
  943 + <span
  944 + class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"
  945 + >
  946 + Pending
  947 + </span>
  948 + </td>
  949 + <td class="px-4 py-3 text-sm">
  950 + 6/10/2020
  951 + </td>
  952 + </tr>
  953 +
  954 + <tr class="text-gray-700 dark:text-gray-400">
  955 + <td class="px-4 py-3">
  956 + <div class="flex items-center text-sm">
  957 + <!-- Avatar with inset shadow -->
  958 + <div
  959 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  960 + >
  961 + <img
  962 + class="object-cover w-full h-full rounded-full"
  963 + src="https://images.unsplash.com/photo-1551069613-1904dbdcda11?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
  964 + alt=""
  965 + loading="lazy"
  966 + />
  967 + <div
  968 + class="absolute inset-0 rounded-full shadow-inner"
  969 + aria-hidden="true"
  970 + ></div>
  971 + </div>
  972 + <div>
  973 + <p class="font-semibold">Sarah Curry</p>
  974 + <p class="text-xs text-gray-600 dark:text-gray-400">
  975 + Designer
  976 + </p>
  977 + </div>
  978 + </div>
  979 + </td>
  980 + <td class="px-4 py-3 text-sm">
  981 + $ 86.00
  982 + </td>
  983 + <td class="px-4 py-3 text-xs">
  984 + <span
  985 + class="px-2 py-1 font-semibold leading-tight text-red-700 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-700"
  986 + >
  987 + Denied
  988 + </span>
  989 + </td>
  990 + <td class="px-4 py-3 text-sm">
  991 + 6/10/2020
  992 + </td>
  993 + </tr>
  994 +
  995 + <tr class="text-gray-700 dark:text-gray-400">
  996 + <td class="px-4 py-3">
  997 + <div class="flex items-center text-sm">
  998 + <!-- Avatar with inset shadow -->
  999 + <div
  1000 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  1001 + >
  1002 + <img
  1003 + class="object-cover w-full h-full rounded-full"
  1004 + src="https://images.unsplash.com/photo-1551006917-3b4c078c47c9?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
  1005 + alt=""
  1006 + loading="lazy"
  1007 + />
  1008 + <div
  1009 + class="absolute inset-0 rounded-full shadow-inner"
  1010 + aria-hidden="true"
  1011 + ></div>
  1012 + </div>
  1013 + <div>
  1014 + <p class="font-semibold">Rulia Joberts</p>
  1015 + <p class="text-xs text-gray-600 dark:text-gray-400">
  1016 + Actress
  1017 + </p>
  1018 + </div>
  1019 + </div>
  1020 + </td>
  1021 + <td class="px-4 py-3 text-sm">
  1022 + $ 1276.45
  1023 + </td>
  1024 + <td class="px-4 py-3 text-xs">
  1025 + <span
  1026 + class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
  1027 + >
  1028 + Approved
  1029 + </span>
  1030 + </td>
  1031 + <td class="px-4 py-3 text-sm">
  1032 + 6/10/2020
  1033 + </td>
  1034 + </tr>
  1035 +
  1036 + <tr class="text-gray-700 dark:text-gray-400">
  1037 + <td class="px-4 py-3">
  1038 + <div class="flex items-center text-sm">
  1039 + <!-- Avatar with inset shadow -->
  1040 + <div
  1041 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  1042 + >
  1043 + <img
  1044 + class="object-cover w-full h-full rounded-full"
  1045 + src="https://images.unsplash.com/photo-1546456073-6712f79251bb?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
  1046 + alt=""
  1047 + loading="lazy"
  1048 + />
  1049 + <div
  1050 + class="absolute inset-0 rounded-full shadow-inner"
  1051 + aria-hidden="true"
  1052 + ></div>
  1053 + </div>
  1054 + <div>
  1055 + <p class="font-semibold">Wenzel Dashington</p>
  1056 + <p class="text-xs text-gray-600 dark:text-gray-400">
  1057 + Actor
  1058 + </p>
  1059 + </div>
  1060 + </div>
  1061 + </td>
  1062 + <td class="px-4 py-3 text-sm">
  1063 + $ 863.45
  1064 + </td>
  1065 + <td class="px-4 py-3 text-xs">
  1066 + <span
  1067 + class="px-2 py-1 font-semibold leading-tight text-gray-700 bg-gray-100 rounded-full dark:text-gray-100 dark:bg-gray-700"
  1068 + >
  1069 + Expired
  1070 + </span>
  1071 + </td>
  1072 + <td class="px-4 py-3 text-sm">
  1073 + 6/10/2020
  1074 + </td>
  1075 + </tr>
  1076 +
  1077 + <tr class="text-gray-700 dark:text-gray-400">
  1078 + <td class="px-4 py-3">
  1079 + <div class="flex items-center text-sm">
  1080 + <!-- Avatar with inset shadow -->
  1081 + <div
  1082 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  1083 + >
  1084 + <img
  1085 + class="object-cover w-full h-full rounded-full"
  1086 + src="https://images.unsplash.com/photo-1502720705749-871143f0e671?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&s=b8377ca9f985d80264279f277f3a67f5"
  1087 + alt=""
  1088 + loading="lazy"
  1089 + />
  1090 + <div
  1091 + class="absolute inset-0 rounded-full shadow-inner"
  1092 + aria-hidden="true"
  1093 + ></div>
  1094 + </div>
  1095 + <div>
  1096 + <p class="font-semibold">Dave Li</p>
  1097 + <p class="text-xs text-gray-600 dark:text-gray-400">
  1098 + Influencer
  1099 + </p>
  1100 + </div>
  1101 + </div>
  1102 + </td>
  1103 + <td class="px-4 py-3 text-sm">
  1104 + $ 863.45
  1105 + </td>
  1106 + <td class="px-4 py-3 text-xs">
  1107 + <span
  1108 + class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
  1109 + >
  1110 + Approved
  1111 + </span>
  1112 + </td>
  1113 + <td class="px-4 py-3 text-sm">
  1114 + 6/10/2020
  1115 + </td>
  1116 + </tr>
  1117 +
  1118 + <tr class="text-gray-700 dark:text-gray-400">
  1119 + <td class="px-4 py-3">
  1120 + <div class="flex items-center text-sm">
  1121 + <!-- Avatar with inset shadow -->
  1122 + <div
  1123 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  1124 + >
  1125 + <img
  1126 + class="object-cover w-full h-full rounded-full"
  1127 + src="https://images.unsplash.com/photo-1531746020798-e6953c6e8e04?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
  1128 + alt=""
  1129 + loading="lazy"
  1130 + />
  1131 + <div
  1132 + class="absolute inset-0 rounded-full shadow-inner"
  1133 + aria-hidden="true"
  1134 + ></div>
  1135 + </div>
  1136 + <div>
  1137 + <p class="font-semibold">Maria Ramovic</p>
  1138 + <p class="text-xs text-gray-600 dark:text-gray-400">
  1139 + Runner
  1140 + </p>
  1141 + </div>
  1142 + </div>
  1143 + </td>
  1144 + <td class="px-4 py-3 text-sm">
  1145 + $ 863.45
  1146 + </td>
  1147 + <td class="px-4 py-3 text-xs">
  1148 + <span
  1149 + class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
  1150 + >
  1151 + Approved
  1152 + </span>
  1153 + </td>
  1154 + <td class="px-4 py-3 text-sm">
  1155 + 6/10/2020
  1156 + </td>
  1157 + </tr>
  1158 +
  1159 + <tr class="text-gray-700 dark:text-gray-400">
  1160 + <td class="px-4 py-3">
  1161 + <div class="flex items-center text-sm">
  1162 + <!-- Avatar with inset shadow -->
  1163 + <div
  1164 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  1165 + >
  1166 + <img
  1167 + class="object-cover w-full h-full rounded-full"
  1168 + src="https://images.unsplash.com/photo-1566411520896-01e7ca4726af?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
  1169 + alt=""
  1170 + loading="lazy"
  1171 + />
  1172 + <div
  1173 + class="absolute inset-0 rounded-full shadow-inner"
  1174 + aria-hidden="true"
  1175 + ></div>
  1176 + </div>
  1177 + <div>
  1178 + <p class="font-semibold">Hitney Wouston</p>
  1179 + <p class="text-xs text-gray-600 dark:text-gray-400">
  1180 + Singer
  1181 + </p>
  1182 + </div>
  1183 + </div>
  1184 + </td>
  1185 + <td class="px-4 py-3 text-sm">
  1186 + $ 863.45
  1187 + </td>
  1188 + <td class="px-4 py-3 text-xs">
  1189 + <span
  1190 + class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
  1191 + >
  1192 + Approved
  1193 + </span>
  1194 + </td>
  1195 + <td class="px-4 py-3 text-sm">
  1196 + 6/10/2020
  1197 + </td>
  1198 + </tr>
  1199 +
  1200 + <tr class="text-gray-700 dark:text-gray-400">
  1201 + <td class="px-4 py-3">
  1202 + <div class="flex items-center text-sm">
  1203 + <!-- Avatar with inset shadow -->
  1204 + <div
  1205 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  1206 + >
  1207 + <img
  1208 + class="object-cover w-full h-full rounded-full"
  1209 + src="https://images.unsplash.com/flagged/photo-1570612861542-284f4c12e75f?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
  1210 + alt=""
  1211 + loading="lazy"
  1212 + />
  1213 + <div
  1214 + class="absolute inset-0 rounded-full shadow-inner"
  1215 + aria-hidden="true"
  1216 + ></div>
  1217 + </div>
  1218 + <div>
  1219 + <p class="font-semibold">Hans Burger</p>
  1220 + <p class="text-xs text-gray-600 dark:text-gray-400">
  1221 + 10x Developer
  1222 + </p>
  1223 + </div>
  1224 + </div>
  1225 + </td>
  1226 + <td class="px-4 py-3 text-sm">
  1227 + $ 863.45
  1228 + </td>
  1229 + <td class="px-4 py-3 text-xs">
  1230 + <span
  1231 + class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
  1232 + >
  1233 + Approved
  1234 + </span>
  1235 + </td>
  1236 + <td class="px-4 py-3 text-sm">
  1237 + 6/10/2020
  1238 + </td>
  1239 + </tr>
  1240 + </tbody>
  1241 + </table>
  1242 + </div>
  1243 + <div
  1244 + class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800"
  1245 + >
  1246 + <span class="flex items-center col-span-3">
  1247 + Showing 21-30 of 100
  1248 + </span>
  1249 + <span class="col-span-2"></span>
  1250 + <!-- Pagination -->
  1251 + <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end">
  1252 + <nav aria-label="Table navigation">
  1253 + <ul class="inline-flex items-center">
  1254 + <li>
  1255 + <button
  1256 + class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple"
  1257 + aria-label="Previous"
  1258 + >
  1259 + <svg
  1260 + aria-hidden="true"
  1261 + class="w-4 h-4 fill-current"
  1262 + viewBox="0 0 20 20"
  1263 + >
  1264 + <path
  1265 + d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z"
  1266 + clip-rule="evenodd"
  1267 + fill-rule="evenodd"
  1268 + ></path>
  1269 + </svg>
  1270 + </button>
  1271 + </li>
  1272 + <li>
  1273 + <button
  1274 + class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
  1275 + >
  1276 + 1
  1277 + </button>
  1278 + </li>
  1279 + <li>
  1280 + <button
  1281 + class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
  1282 + >
  1283 + 2
  1284 + </button>
  1285 + </li>
  1286 + <li>
  1287 + <button
  1288 + class="px-3 py-1 text-white transition-colors duration-150 bg-purple-600 border border-r-0 border-purple-600 rounded-md focus:outline-none focus:shadow-outline-purple"
  1289 + >
  1290 + 3
  1291 + </button>
  1292 + </li>
  1293 + <li>
  1294 + <button
  1295 + class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
  1296 + >
  1297 + 4
  1298 + </button>
  1299 + </li>
  1300 + <li>
  1301 + <span class="px-3 py-1">...</span>
  1302 + </li>
  1303 + <li>
  1304 + <button
  1305 + class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
  1306 + >
  1307 + 8
  1308 + </button>
  1309 + </li>
  1310 + <li>
  1311 + <button
  1312 + class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
  1313 + >
  1314 + 9
  1315 + </button>
  1316 + </li>
  1317 + <li>
  1318 + <button
  1319 + class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple"
  1320 + aria-label="Next"
  1321 + >
  1322 + <svg
  1323 + class="w-4 h-4 fill-current"
  1324 + aria-hidden="true"
  1325 + viewBox="0 0 20 20"
  1326 + >
  1327 + <path
  1328 + d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
  1329 + clip-rule="evenodd"
  1330 + fill-rule="evenodd"
  1331 + ></path>
  1332 + </svg>
  1333 + </button>
  1334 + </li>
  1335 + </ul>
  1336 + </nav>
  1337 + </span>
  1338 + </div>
  1339 + </div>
  1340 +
  1341 + <!-- With actions -->
  1342 + <h4
  1343 + class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
  1344 + >
  1345 + Table with actions
  1346 + </h4>
  1347 + <div class="w-full overflow-hidden rounded-lg shadow-xs">
  1348 + <div class="w-full overflow-x-auto">
  1349 + <table class="w-full whitespace-no-wrap">
  1350 + <thead>
  1351 + <tr
  1352 + class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800"
  1353 + >
  1354 + <th class="px-4 py-3">Client</th>
  1355 + <th class="px-4 py-3">Amount</th>
  1356 + <th class="px-4 py-3">Status</th>
  1357 + <th class="px-4 py-3">Date</th>
  1358 + <th class="px-4 py-3">Actions</th>
  1359 + </tr>
  1360 + </thead>
  1361 + <tbody
  1362 + class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"
  1363 + >
  1364 + <tr class="text-gray-700 dark:text-gray-400">
  1365 + <td class="px-4 py-3">
  1366 + <div class="flex items-center text-sm">
  1367 + <!-- Avatar with inset shadow -->
  1368 + <div
  1369 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  1370 + >
  1371 + <img
  1372 + class="object-cover w-full h-full rounded-full"
  1373 + src="https://images.unsplash.com/flagged/photo-1570612861542-284f4c12e75f?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
  1374 + alt=""
  1375 + loading="lazy"
  1376 + />
  1377 + <div
  1378 + class="absolute inset-0 rounded-full shadow-inner"
  1379 + aria-hidden="true"
  1380 + ></div>
  1381 + </div>
  1382 + <div>
  1383 + <p class="font-semibold">Hans Burger</p>
  1384 + <p class="text-xs text-gray-600 dark:text-gray-400">
  1385 + 10x Developer
  1386 + </p>
  1387 + </div>
  1388 + </div>
  1389 + </td>
  1390 + <td class="px-4 py-3 text-sm">
  1391 + $ 863.45
  1392 + </td>
  1393 + <td class="px-4 py-3 text-xs">
  1394 + <span
  1395 + class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
  1396 + >
  1397 + Approved
  1398 + </span>
  1399 + </td>
  1400 + <td class="px-4 py-3 text-sm">
  1401 + 6/10/2020
  1402 + </td>
  1403 + <td class="px-4 py-3">
  1404 + <div class="flex items-center space-x-4 text-sm">
  1405 + <button
  1406 + class="flex items-center justify-between px-2 py-2 text-sm font-medium leading-5 text-purple-600 rounded-lg dark:text-gray-400 focus:outline-none focus:shadow-outline-gray"
  1407 + aria-label="Edit"
  1408 + >
  1409 + <svg
  1410 + class="w-5 h-5"
  1411 + aria-hidden="true"
  1412 + fill="currentColor"
  1413 + viewBox="0 0 20 20"
  1414 + >
  1415 + <path
  1416 + d="M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z"
  1417 + ></path>
  1418 + </svg>
  1419 + </button>
  1420 + <button
  1421 + class="flex items-center justify-between px-2 py-2 text-sm font-medium leading-5 text-purple-600 rounded-lg dark:text-gray-400 focus:outline-none focus:shadow-outline-gray"
  1422 + aria-label="Delete"
  1423 + >
  1424 + <svg
  1425 + class="w-5 h-5"
  1426 + aria-hidden="true"
  1427 + fill="currentColor"
  1428 + viewBox="0 0 20 20"
  1429 + >
  1430 + <path
  1431 + fill-rule="evenodd"
  1432 + d="M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z"
  1433 + clip-rule="evenodd"
  1434 + ></path>
  1435 + </svg>
  1436 + </button>
  1437 + </div>
  1438 + </td>
  1439 + </tr>
  1440 +
  1441 + <tr class="text-gray-700 dark:text-gray-400">
  1442 + <td class="px-4 py-3">
  1443 + <div class="flex items-center text-sm">
  1444 + <!-- Avatar with inset shadow -->
  1445 + <div
  1446 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  1447 + >
  1448 + <img
  1449 + class="object-cover w-full h-full rounded-full"
  1450 + src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&facepad=3&fit=facearea&s=707b9c33066bf8808c934c8ab394dff6"
  1451 + alt=""
  1452 + loading="lazy"
  1453 + />
  1454 + <div
  1455 + class="absolute inset-0 rounded-full shadow-inner"
  1456 + aria-hidden="true"
  1457 + ></div>
  1458 + </div>
  1459 + <div>
  1460 + <p class="font-semibold">Jolina Angelie</p>
  1461 + <p class="text-xs text-gray-600 dark:text-gray-400">
  1462 + Unemployed
  1463 + </p>
  1464 + </div>
  1465 + </div>
  1466 + </td>
  1467 + <td class="px-4 py-3 text-sm">
  1468 + $ 369.95
  1469 + </td>
  1470 + <td class="px-4 py-3 text-xs">
  1471 + <span
  1472 + class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"
  1473 + >
  1474 + Pending
  1475 + </span>
  1476 + </td>
  1477 + <td class="px-4 py-3 text-sm">
  1478 + 6/10/2020
  1479 + </td>
  1480 + <td class="px-4 py-3">
  1481 + <div class="flex items-center space-x-4 text-sm">
  1482 + <button
  1483 + class="flex items-center justify-between px-2 py-2 text-sm font-medium leading-5 text-purple-600 rounded-lg dark:text-gray-400 focus:outline-none focus:shadow-outline-gray"
  1484 + aria-label="Edit"
  1485 + >
  1486 + <svg
  1487 + class="w-5 h-5"
  1488 + aria-hidden="true"
  1489 + fill="currentColor"
  1490 + viewBox="0 0 20 20"
  1491 + >
  1492 + <path
  1493 + d="M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z"
  1494 + ></path>
  1495 + </svg>
  1496 + </button>
  1497 + <button
  1498 + class="flex items-center justify-between px-2 py-2 text-sm font-medium leading-5 text-purple-600 rounded-lg dark:text-gray-400 focus:outline-none focus:shadow-outline-gray"
  1499 + aria-label="Delete"
  1500 + >
  1501 + <svg
  1502 + class="w-5 h-5"
  1503 + aria-hidden="true"
  1504 + fill="currentColor"
  1505 + viewBox="0 0 20 20"
  1506 + >
  1507 + <path
  1508 + fill-rule="evenodd"
  1509 + d="M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z"
  1510 + clip-rule="evenodd"
  1511 + ></path>
  1512 + </svg>
  1513 + </button>
  1514 + </div>
  1515 + </td>
  1516 + </tr>
  1517 +
  1518 + <tr class="text-gray-700 dark:text-gray-400">
  1519 + <td class="px-4 py-3">
  1520 + <div class="flex items-center text-sm">
  1521 + <!-- Avatar with inset shadow -->
  1522 + <div
  1523 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  1524 + >
  1525 + <img
  1526 + class="object-cover w-full h-full rounded-full"
  1527 + src="https://images.unsplash.com/photo-1551069613-1904dbdcda11?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
  1528 + alt=""
  1529 + loading="lazy"
  1530 + />
  1531 + <div
  1532 + class="absolute inset-0 rounded-full shadow-inner"
  1533 + aria-hidden="true"
  1534 + ></div>
  1535 + </div>
  1536 + <div>
  1537 + <p class="font-semibold">Sarah Curry</p>
  1538 + <p class="text-xs text-gray-600 dark:text-gray-400">
  1539 + Designer
  1540 + </p>
  1541 + </div>
  1542 + </div>
  1543 + </td>
  1544 + <td class="px-4 py-3 text-sm">
  1545 + $ 86.00
  1546 + </td>
  1547 + <td class="px-4 py-3 text-xs">
  1548 + <span
  1549 + class="px-2 py-1 font-semibold leading-tight text-red-700 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-700"
  1550 + >
  1551 + Denied
  1552 + </span>
  1553 + </td>
  1554 + <td class="px-4 py-3 text-sm">
  1555 + 6/10/2020
  1556 + </td>
  1557 + <td class="px-4 py-3">
  1558 + <div class="flex items-center space-x-4 text-sm">
  1559 + <button
  1560 + class="flex items-center justify-between px-2 py-2 text-sm font-medium leading-5 text-purple-600 rounded-lg dark:text-gray-400 focus:outline-none focus:shadow-outline-gray"
  1561 + aria-label="Edit"
  1562 + >
  1563 + <svg
  1564 + class="w-5 h-5"
  1565 + aria-hidden="true"
  1566 + fill="currentColor"
  1567 + viewBox="0 0 20 20"
  1568 + >
  1569 + <path
  1570 + d="M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z"
  1571 + ></path>
  1572 + </svg>
  1573 + </button>
  1574 + <button
  1575 + class="flex items-center justify-between px-2 py-2 text-sm font-medium leading-5 text-purple-600 rounded-lg dark:text-gray-400 focus:outline-none focus:shadow-outline-gray"
  1576 + aria-label="Delete"
  1577 + >
  1578 + <svg
  1579 + class="w-5 h-5"
  1580 + aria-hidden="true"
  1581 + fill="currentColor"
  1582 + viewBox="0 0 20 20"
  1583 + >
  1584 + <path
  1585 + fill-rule="evenodd"
  1586 + d="M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z"
  1587 + clip-rule="evenodd"
  1588 + ></path>
  1589 + </svg>
  1590 + </button>
  1591 + </div>
  1592 + </td>
  1593 + </tr>
  1594 +
  1595 + <tr class="text-gray-700 dark:text-gray-400">
  1596 + <td class="px-4 py-3">
  1597 + <div class="flex items-center text-sm">
  1598 + <!-- Avatar with inset shadow -->
  1599 + <div
  1600 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  1601 + >
  1602 + <img
  1603 + class="object-cover w-full h-full rounded-full"
  1604 + src="https://images.unsplash.com/photo-1551006917-3b4c078c47c9?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
  1605 + alt=""
  1606 + loading="lazy"
  1607 + />
  1608 + <div
  1609 + class="absolute inset-0 rounded-full shadow-inner"
  1610 + aria-hidden="true"
  1611 + ></div>
  1612 + </div>
  1613 + <div>
  1614 + <p class="font-semibold">Rulia Joberts</p>
  1615 + <p class="text-xs text-gray-600 dark:text-gray-400">
  1616 + Actress
  1617 + </p>
  1618 + </div>
  1619 + </div>
  1620 + </td>
  1621 + <td class="px-4 py-3 text-sm">
  1622 + $ 1276.45
  1623 + </td>
  1624 + <td class="px-4 py-3 text-xs">
  1625 + <span
  1626 + class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
  1627 + >
  1628 + Approved
  1629 + </span>
  1630 + </td>
  1631 + <td class="px-4 py-3 text-sm">
  1632 + 6/10/2020
  1633 + </td>
  1634 + <td class="px-4 py-3">
  1635 + <div class="flex items-center space-x-4 text-sm">
  1636 + <button
  1637 + class="flex items-center justify-between px-2 py-2 text-sm font-medium leading-5 text-purple-600 rounded-lg dark:text-gray-400 focus:outline-none focus:shadow-outline-gray"
  1638 + aria-label="Edit"
  1639 + >
  1640 + <svg
  1641 + class="w-5 h-5"
  1642 + aria-hidden="true"
  1643 + fill="currentColor"
  1644 + viewBox="0 0 20 20"
  1645 + >
  1646 + <path
  1647 + d="M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z"
  1648 + ></path>
  1649 + </svg>
  1650 + </button>
  1651 + <button
  1652 + class="flex items-center justify-between px-2 py-2 text-sm font-medium leading-5 text-purple-600 rounded-lg dark:text-gray-400 focus:outline-none focus:shadow-outline-gray"
  1653 + aria-label="Delete"
  1654 + >
  1655 + <svg
  1656 + class="w-5 h-5"
  1657 + aria-hidden="true"
  1658 + fill="currentColor"
  1659 + viewBox="0 0 20 20"
  1660 + >
  1661 + <path
  1662 + fill-rule="evenodd"
  1663 + d="M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z"
  1664 + clip-rule="evenodd"
  1665 + ></path>
  1666 + </svg>
  1667 + </button>
  1668 + </div>
  1669 + </td>
  1670 + </tr>
  1671 +
  1672 + <tr class="text-gray-700 dark:text-gray-400">
  1673 + <td class="px-4 py-3">
  1674 + <div class="flex items-center text-sm">
  1675 + <!-- Avatar with inset shadow -->
  1676 + <div
  1677 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  1678 + >
  1679 + <img
  1680 + class="object-cover w-full h-full rounded-full"
  1681 + src="https://images.unsplash.com/photo-1546456073-6712f79251bb?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
  1682 + alt=""
  1683 + loading="lazy"
  1684 + />
  1685 + <div
  1686 + class="absolute inset-0 rounded-full shadow-inner"
  1687 + aria-hidden="true"
  1688 + ></div>
  1689 + </div>
  1690 + <div>
  1691 + <p class="font-semibold">Wenzel Dashington</p>
  1692 + <p class="text-xs text-gray-600 dark:text-gray-400">
  1693 + Actor
  1694 + </p>
  1695 + </div>
  1696 + </div>
  1697 + </td>
  1698 + <td class="px-4 py-3 text-sm">
  1699 + $ 863.45
  1700 + </td>
  1701 + <td class="px-4 py-3 text-xs">
  1702 + <span
  1703 + class="px-2 py-1 font-semibold leading-tight text-gray-700 bg-gray-100 rounded-full dark:text-gray-100 dark:bg-gray-700"
  1704 + >
  1705 + Expired
  1706 + </span>
  1707 + </td>
  1708 + <td class="px-4 py-3 text-sm">
  1709 + 6/10/2020
  1710 + </td>
  1711 + <td class="px-4 py-3">
  1712 + <div class="flex items-center space-x-4 text-sm">
  1713 + <button
  1714 + class="flex items-center justify-between px-2 py-2 text-sm font-medium leading-5 text-purple-600 rounded-lg dark:text-gray-400 focus:outline-none focus:shadow-outline-gray"
  1715 + aria-label="Edit"
  1716 + >
  1717 + <svg
  1718 + class="w-5 h-5"
  1719 + aria-hidden="true"
  1720 + fill="currentColor"
  1721 + viewBox="0 0 20 20"
  1722 + >
  1723 + <path
  1724 + d="M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z"
  1725 + ></path>
  1726 + </svg>
  1727 + </button>
  1728 + <button
  1729 + class="flex items-center justify-between px-2 py-2 text-sm font-medium leading-5 text-purple-600 rounded-lg dark:text-gray-400 focus:outline-none focus:shadow-outline-gray"
  1730 + aria-label="Delete"
  1731 + >
  1732 + <svg
  1733 + class="w-5 h-5"
  1734 + aria-hidden="true"
  1735 + fill="currentColor"
  1736 + viewBox="0 0 20 20"
  1737 + >
  1738 + <path
  1739 + fill-rule="evenodd"
  1740 + d="M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z"
  1741 + clip-rule="evenodd"
  1742 + ></path>
  1743 + </svg>
  1744 + </button>
  1745 + </div>
  1746 + </td>
  1747 + </tr>
  1748 +
  1749 + <tr class="text-gray-700 dark:text-gray-400">
  1750 + <td class="px-4 py-3">
  1751 + <div class="flex items-center text-sm">
  1752 + <!-- Avatar with inset shadow -->
  1753 + <div
  1754 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  1755 + >
  1756 + <img
  1757 + class="object-cover w-full h-full rounded-full"
  1758 + src="https://images.unsplash.com/photo-1502720705749-871143f0e671?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&s=b8377ca9f985d80264279f277f3a67f5"
  1759 + alt=""
  1760 + loading="lazy"
  1761 + />
  1762 + <div
  1763 + class="absolute inset-0 rounded-full shadow-inner"
  1764 + aria-hidden="true"
  1765 + ></div>
  1766 + </div>
  1767 + <div>
  1768 + <p class="font-semibold">Dave Li</p>
  1769 + <p class="text-xs text-gray-600 dark:text-gray-400">
  1770 + Influencer
  1771 + </p>
  1772 + </div>
  1773 + </div>
  1774 + </td>
  1775 + <td class="px-4 py-3 text-sm">
  1776 + $ 863.45
  1777 + </td>
  1778 + <td class="px-4 py-3 text-xs">
  1779 + <span
  1780 + class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
  1781 + >
  1782 + Approved
  1783 + </span>
  1784 + </td>
  1785 + <td class="px-4 py-3 text-sm">
  1786 + 6/10/2020
  1787 + </td>
  1788 + <td class="px-4 py-3">
  1789 + <div class="flex items-center space-x-4 text-sm">
  1790 + <button
  1791 + class="flex items-center justify-between px-2 py-2 text-sm font-medium leading-5 text-purple-600 rounded-lg dark:text-gray-400 focus:outline-none focus:shadow-outline-gray"
  1792 + aria-label="Edit"
  1793 + >
  1794 + <svg
  1795 + class="w-5 h-5"
  1796 + aria-hidden="true"
  1797 + fill="currentColor"
  1798 + viewBox="0 0 20 20"
  1799 + >
  1800 + <path
  1801 + d="M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z"
  1802 + ></path>
  1803 + </svg>
  1804 + </button>
  1805 + <button
  1806 + class="flex items-center justify-between px-2 py-2 text-sm font-medium leading-5 text-purple-600 rounded-lg dark:text-gray-400 focus:outline-none focus:shadow-outline-gray"
  1807 + aria-label="Delete"
  1808 + >
  1809 + <svg
  1810 + class="w-5 h-5"
  1811 + aria-hidden="true"
  1812 + fill="currentColor"
  1813 + viewBox="0 0 20 20"
  1814 + >
  1815 + <path
  1816 + fill-rule="evenodd"
  1817 + d="M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z"
  1818 + clip-rule="evenodd"
  1819 + ></path>
  1820 + </svg>
  1821 + </button>
  1822 + </div>
  1823 + </td>
  1824 + </tr>
  1825 +
  1826 + <tr class="text-gray-700 dark:text-gray-400">
  1827 + <td class="px-4 py-3">
  1828 + <div class="flex items-center text-sm">
  1829 + <!-- Avatar with inset shadow -->
  1830 + <div
  1831 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  1832 + >
  1833 + <img
  1834 + class="object-cover w-full h-full rounded-full"
  1835 + src="https://images.unsplash.com/photo-1531746020798-e6953c6e8e04?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
  1836 + alt=""
  1837 + loading="lazy"
  1838 + />
  1839 + <div
  1840 + class="absolute inset-0 rounded-full shadow-inner"
  1841 + aria-hidden="true"
  1842 + ></div>
  1843 + </div>
  1844 + <div>
  1845 + <p class="font-semibold">Maria Ramovic</p>
  1846 + <p class="text-xs text-gray-600 dark:text-gray-400">
  1847 + Runner
  1848 + </p>
  1849 + </div>
  1850 + </div>
  1851 + </td>
  1852 + <td class="px-4 py-3 text-sm">
  1853 + $ 863.45
  1854 + </td>
  1855 + <td class="px-4 py-3 text-xs">
  1856 + <span
  1857 + class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
  1858 + >
  1859 + Approved
  1860 + </span>
  1861 + </td>
  1862 + <td class="px-4 py-3 text-sm">
  1863 + 6/10/2020
  1864 + </td>
  1865 + <td class="px-4 py-3">
  1866 + <div class="flex items-center space-x-4 text-sm">
  1867 + <button
  1868 + class="flex items-center justify-between px-2 py-2 text-sm font-medium leading-5 text-purple-600 rounded-lg dark:text-gray-400 focus:outline-none focus:shadow-outline-gray"
  1869 + aria-label="Edit"
  1870 + >
  1871 + <svg
  1872 + class="w-5 h-5"
  1873 + aria-hidden="true"
  1874 + fill="currentColor"
  1875 + viewBox="0 0 20 20"
  1876 + >
  1877 + <path
  1878 + d="M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z"
  1879 + ></path>
  1880 + </svg>
  1881 + </button>
  1882 + <button
  1883 + class="flex items-center justify-between px-2 py-2 text-sm font-medium leading-5 text-purple-600 rounded-lg dark:text-gray-400 focus:outline-none focus:shadow-outline-gray"
  1884 + aria-label="Delete"
  1885 + >
  1886 + <svg
  1887 + class="w-5 h-5"
  1888 + aria-hidden="true"
  1889 + fill="currentColor"
  1890 + viewBox="0 0 20 20"
  1891 + >
  1892 + <path
  1893 + fill-rule="evenodd"
  1894 + d="M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z"
  1895 + clip-rule="evenodd"
  1896 + ></path>
  1897 + </svg>
  1898 + </button>
  1899 + </div>
  1900 + </td>
  1901 + </tr>
  1902 +
  1903 + <tr class="text-gray-700 dark:text-gray-400">
  1904 + <td class="px-4 py-3">
  1905 + <div class="flex items-center text-sm">
  1906 + <!-- Avatar with inset shadow -->
  1907 + <div
  1908 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  1909 + >
  1910 + <img
  1911 + class="object-cover w-full h-full rounded-full"
  1912 + src="https://images.unsplash.com/photo-1566411520896-01e7ca4726af?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
  1913 + alt=""
  1914 + loading="lazy"
  1915 + />
  1916 + <div
  1917 + class="absolute inset-0 rounded-full shadow-inner"
  1918 + aria-hidden="true"
  1919 + ></div>
  1920 + </div>
  1921 + <div>
  1922 + <p class="font-semibold">Hitney Wouston</p>
  1923 + <p class="text-xs text-gray-600 dark:text-gray-400">
  1924 + Singer
  1925 + </p>
  1926 + </div>
  1927 + </div>
  1928 + </td>
  1929 + <td class="px-4 py-3 text-sm">
  1930 + $ 863.45
  1931 + </td>
  1932 + <td class="px-4 py-3 text-xs">
  1933 + <span
  1934 + class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
  1935 + >
  1936 + Approved
  1937 + </span>
  1938 + </td>
  1939 + <td class="px-4 py-3 text-sm">
  1940 + 6/10/2020
  1941 + </td>
  1942 + <td class="px-4 py-3">
  1943 + <div class="flex items-center space-x-4 text-sm">
  1944 + <button
  1945 + class="flex items-center justify-between px-2 py-2 text-sm font-medium leading-5 text-purple-600 rounded-lg dark:text-gray-400 focus:outline-none focus:shadow-outline-gray"
  1946 + aria-label="Edit"
  1947 + >
  1948 + <svg
  1949 + class="w-5 h-5"
  1950 + aria-hidden="true"
  1951 + fill="currentColor"
  1952 + viewBox="0 0 20 20"
  1953 + >
  1954 + <path
  1955 + d="M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z"
  1956 + ></path>
  1957 + </svg>
  1958 + </button>
  1959 + <button
  1960 + class="flex items-center justify-between px-2 py-2 text-sm font-medium leading-5 text-purple-600 rounded-lg dark:text-gray-400 focus:outline-none focus:shadow-outline-gray"
  1961 + aria-label="Delete"
  1962 + >
  1963 + <svg
  1964 + class="w-5 h-5"
  1965 + aria-hidden="true"
  1966 + fill="currentColor"
  1967 + viewBox="0 0 20 20"
  1968 + >
  1969 + <path
  1970 + fill-rule="evenodd"
  1971 + d="M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z"
  1972 + clip-rule="evenodd"
  1973 + ></path>
  1974 + </svg>
  1975 + </button>
  1976 + </div>
  1977 + </td>
  1978 + </tr>
  1979 +
  1980 + <tr class="text-gray-700 dark:text-gray-400">
  1981 + <td class="px-4 py-3">
  1982 + <div class="flex items-center text-sm">
  1983 + <!-- Avatar with inset shadow -->
  1984 + <div
  1985 + class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
  1986 + >
  1987 + <img
  1988 + class="object-cover w-full h-full rounded-full"
  1989 + src="https://images.unsplash.com/flagged/photo-1570612861542-284f4c12e75f?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ"
  1990 + alt=""
  1991 + loading="lazy"
  1992 + />
  1993 + <div
  1994 + class="absolute inset-0 rounded-full shadow-inner"
  1995 + aria-hidden="true"
  1996 + ></div>
  1997 + </div>
  1998 + <div>
  1999 + <p class="font-semibold">Hans Burger</p>
  2000 + <p class="text-xs text-gray-600 dark:text-gray-400">
  2001 + 10x Developer
  2002 + </p>
  2003 + </div>
  2004 + </div>
  2005 + </td>
  2006 + <td class="px-4 py-3 text-sm">
  2007 + $ 863.45
  2008 + </td>
  2009 + <td class="px-4 py-3 text-xs">
  2010 + <span
  2011 + class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
  2012 + >
  2013 + Approved
  2014 + </span>
  2015 + </td>
  2016 + <td class="px-4 py-3 text-sm">
  2017 + 6/10/2020
  2018 + </td>
  2019 + <td class="px-4 py-3">
  2020 + <div class="flex items-center space-x-4 text-sm">
  2021 + <button
  2022 + class="flex items-center justify-between px-2 py-2 text-sm font-medium leading-5 text-purple-600 rounded-lg dark:text-gray-400 focus:outline-none focus:shadow-outline-gray"
  2023 + aria-label="Edit"
  2024 + >
  2025 + <svg
  2026 + class="w-5 h-5"
  2027 + aria-hidden="true"
  2028 + fill="currentColor"
  2029 + viewBox="0 0 20 20"
  2030 + >
  2031 + <path
  2032 + d="M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z"
  2033 + ></path>
  2034 + </svg>
  2035 + </button>
  2036 + <button
  2037 + class="flex items-center justify-between px-2 py-2 text-sm font-medium leading-5 text-purple-600 rounded-lg dark:text-gray-400 focus:outline-none focus:shadow-outline-gray"
  2038 + aria-label="Delete"
  2039 + >
  2040 + <svg
  2041 + class="w-5 h-5"
  2042 + aria-hidden="true"
  2043 + fill="currentColor"
  2044 + viewBox="0 0 20 20"
  2045 + >
  2046 + <path
  2047 + fill-rule="evenodd"
  2048 + d="M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z"
  2049 + clip-rule="evenodd"
  2050 + ></path>
  2051 + </svg>
  2052 + </button>
  2053 + </div>
  2054 + </td>
  2055 + </tr>
  2056 + </tbody>
  2057 + </table>
  2058 + </div>
  2059 + <div
  2060 + class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800"
  2061 + >
  2062 + <span class="flex items-center col-span-3">
  2063 + Showing 21-30 of 100
  2064 + </span>
  2065 + <span class="col-span-2"></span>
  2066 + <!-- Pagination -->
  2067 + <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end">
  2068 + <nav aria-label="Table navigation">
  2069 + <ul class="inline-flex items-center">
  2070 + <li>
  2071 + <button
  2072 + class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple"
  2073 + aria-label="Previous"
  2074 + >
  2075 + <svg
  2076 + class="w-4 h-4 fill-current"
  2077 + aria-hidden="true"
  2078 + viewBox="0 0 20 20"
  2079 + >
  2080 + <path
  2081 + d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z"
  2082 + clip-rule="evenodd"
  2083 + fill-rule="evenodd"
  2084 + ></path>
  2085 + </svg>
  2086 + </button>
  2087 + </li>
  2088 + <li>
  2089 + <button
  2090 + class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
  2091 + >
  2092 + 1
  2093 + </button>
  2094 + </li>
  2095 + <li>
  2096 + <button
  2097 + class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
  2098 + >
  2099 + 2
  2100 + </button>
  2101 + </li>
  2102 + <li>
  2103 + <button
  2104 + class="px-3 py-1 text-white transition-colors duration-150 bg-purple-600 border border-r-0 border-purple-600 rounded-md focus:outline-none focus:shadow-outline-purple"
  2105 + >
  2106 + 3
  2107 + </button>
  2108 + </li>
  2109 + <li>
  2110 + <button
  2111 + class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
  2112 + >
  2113 + 4
  2114 + </button>
  2115 + </li>
  2116 + <li>
  2117 + <span class="px-3 py-1">...</span>
  2118 + </li>
  2119 + <li>
  2120 + <button
  2121 + class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
  2122 + >
  2123 + 8
  2124 + </button>
  2125 + </li>
  2126 + <li>
  2127 + <button
  2128 + class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
  2129 + >
  2130 + 9
  2131 + </button>
  2132 + </li>
  2133 + <li>
  2134 + <button
  2135 + class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple"
  2136 + aria-label="Next"
  2137 + >
  2138 + <svg
  2139 + class="w-4 h-4 fill-current"
  2140 + aria-hidden="true"
  2141 + viewBox="0 0 20 20"
  2142 + >
  2143 + <path
  2144 + d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
  2145 + clip-rule="evenodd"
  2146 + fill-rule="evenodd"
  2147 + ></path>
  2148 + </svg>
  2149 + </button>
  2150 + </li>
  2151 + </ul>
  2152 + </nav>
  2153 + </span>
  2154 + </div>
  2155 + </div>
  2156 + </div>
  2157 + </main>
  2158 + </div>
  2159 + </div>
  2160 + </body>
  2161 +</html>
resources/views/admin/groups/form.blade.php
... ... @@ -44,7 +44,7 @@
44 44 {{$user->name}}
45 45 </td>
46 46 <td class="px-4 py-3">
47   - <input type="checkbox" id="user{{$user->id}}" name="usergroup[]" value="{{$user->id}}" <?php //if ($user->groups->group_user_id == $group->id) {?>checked<?//}?>/>
  47 + <input type="checkbox" id="user{{$user->id}}" name="usergroup[]" value="{{$user->id}}" <?php if ($user->ingroup->contains('id', $group->id)) {?>checked<? }?>/>
48 48 <pre><? //print_r($user->ingroup->id);?></pre>
49 49 </td>
50 50 </tr>
resources/views/admin/index.blade.php
... ... @@ -241,7 +241,7 @@
241 241 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div>
242 242 </div>
243 243 <div>
244   - <p class="font-semibold"><a href="{{ route('admin.job-titles') }}">Должности</a></p>
  244 + <p class="font-semibold"><a href="{{ route('admin.job-titles.index') }}">Должности</a></p>
245 245 <p class="text-xs text-gray-600 dark:text-gray-400">
246 246 Справочник должности (все должности проекта)
247 247 </p>
resources/views/admin/job_titles/add.blade.php
... ... @@ -0,0 +1,11 @@
  1 +@extends('layout.admin', ['title' => 'Админка - Добавление новой должности'])
  2 +
  3 +@section('content')
  4 + <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300">
  5 + Добавление новой должности
  6 + </h4>
  7 + <form method="POST" action="{{ route('admin.job-titles.store') }}">
  8 + @csrf
  9 + @include('admin.job_titles.form')
  10 + </form>
  11 +@endsection
resources/views/admin/job_titles/edit.blade.php
... ... @@ -0,0 +1,15 @@
  1 +@extends('layout.admin', ['title' => 'Админка - Редактирование должности'])
  2 +
  3 +@section('content')
  4 + <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300">
  5 + Редактирование должности
  6 + </h4>
  7 + <form method="POST" action="{{ route('admin.job-titles.update', ['job_title' => $job_title->id]) }}">
  8 + @csrf
  9 + @isset($job_title)
  10 + @method('PUT')
  11 + @endisset
  12 +
  13 + @include('admin.job_titles.form')
  14 + </form>
  15 +@endsection
resources/views/admin/job_titles/form.blade.php
... ... @@ -0,0 +1,35 @@
  1 +<div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800">
  2 + <label class="block text-sm">
  3 + <span class="text-gray-700 dark:text-gray-400">Название должности</span>
  4 + <input name="name" id="name"
  5 + class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
  6 + placeholder="Название должности" value="{{ old('name') ?? $job_title->name ?? '' }}"
  7 + />
  8 + @error('name')
  9 + <span class="text-xs text-red-600 dark:text-red-400">
  10 + {{ $message }}
  11 + </span>
  12 + @enderror
  13 + </label><br>
  14 +
  15 + <label class="block text-sm">
  16 + <span class="text-gray-700 dark:text-gray-400">Родитель</span>
  17 +
  18 + @php
  19 + $parent_id = old('parent_id') ?? $job_title->parent_id ?? 0;
  20 + @endphp
  21 + <select name="parent_id" class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
  22 + title="Родитель">
  23 + <option value="0">Без родителя</option>
  24 + @include('admin.job_titles.parent_id', ['level' => -1, 'parent' => 0])
  25 + </select>
  26 + </label><br>
  27 +
  28 + <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4">
  29 + <div>
  30 + <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple">
  31 + Сохранить
  32 + </button>
  33 + </div>
  34 + </div>
  35 +</div>
resources/views/admin/job_titles/index.blade.php
... ... @@ -0,0 +1,88 @@
  1 +@extends('layout.admin', ['title' => 'Админка - Справочник Должности'])
  2 +
  3 +@section('script')
  4 +@endsection
  5 +
  6 +@section('search')
  7 + <!--<div class="absolute inset-y-0 flex items-center pl-2">
  8 + <svg
  9 + class="w-4 h-4"
  10 + aria-hidden="true"
  11 + fill="currentColor"
  12 + viewBox="0 0 20 20"
  13 + >
  14 + <path
  15 + fill-rule="evenodd"
  16 + d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z"
  17 + clip-rule="evenodd"
  18 + ></path>
  19 + </svg>
  20 + </div>
  21 + <form action="" method="POST">
  22 + <div style="float:left;"><input
  23 + class="w-full pl-8 pr-2 text-sm text-gray-700 placeholder-gray-600 bg-gray-100 border-0 rounded-md dark:placeholder-gray-500 dark:focus:shadow-outline-gray dark:focus:placeholder-gray-600 dark:bg-gray-700 dark:text-gray-200 focus:placeholder-gray-500 focus:bg-white focus:border-purple-300 focus:outline-none focus:shadow-outline-purple form-input"
  24 + style="width: 400px"
  25 + type="text"
  26 + placeholder="Искать..."
  27 + aria-label="Search"
  28 + /></div>
  29 + <div style="float: left">
  30 + <button type="submit" class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple">Искать</button>
  31 + </div>
  32 + </form>-->
  33 +@endsection
  34 +
  35 +@section('content')
  36 + <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block">
  37 + <div class="w-full overflow-x-auto">
  38 + <a class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" href="{{ route('admin.job-titles.create') }}">Создать должность</a><br><br>
  39 + <table class="w-full whitespace-no-wrap">
  40 + <thead>
  41 + <tr
  42 + class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800"
  43 + >
  44 + <th class="px-4 py-3">№</th>
  45 + <th class="px-4 py-3">Родитель</th>
  46 + <th class="px-4 py-3">Должность</th>
  47 + <th class="px-4 py-3">Дата создания</th>
  48 + <th class="px-4 py-3">Изменить</th>
  49 + </tr>
  50 + </thead>
  51 + <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
  52 + @foreach($Jobs as $job)
  53 + <tr class="text-gray-700 dark:text-gray-400">
  54 + <td class="px-4 py-3">
  55 + {{$job->id}}
  56 + </td>
  57 + <td class="px-4 py-3">
  58 + @if (empty($job->parent->id))
  59 + Не задан
  60 + @else
  61 + {{$job->parent->name}} ({{$job->parent->id}})
  62 + @endif
  63 + </td>
  64 + <td class="px-4 py-3">
  65 + {{$job->name}}
  66 + </td>
  67 + <td class="px-4 py-3 text-sm">
  68 + {{ $job->created_at }}
  69 + </td>
  70 + <td class="px-4 py-3 text-sm_">
  71 + <form action="{{ route('admin.job-titles.destroy', ['job_title' => $job->id]) }}" method="POST">
  72 + <a href="{{ route('admin.job-titles.edit', ['job_title' => $job->id]) }}">Изменить</a> |
  73 + @csrf
  74 + @method('DELETE')
  75 + <input class="btn btn-danger" type="submit" value="Удалить"/>
  76 + </form>
  77 + </td>
  78 + </tr>
  79 + @endforeach
  80 + </tbody>
  81 + </table>
  82 + </div>
  83 +
  84 + <div class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800">
  85 + <?=$Jobs->appends($_GET)->links('admin.pagginate'); ?>
  86 + </div>
  87 + </div>
  88 +@endsection
resources/views/admin/job_titles/parent_id.blade.php
... ... @@ -0,0 +1,10 @@
  1 +@if ($items->where('parent_id', $parent)->count())
  2 + @php $level++ @endphp
  3 + @foreach ($items->where('parent_id', $parent) as $item)
  4 + <option value="{{ $item->id }}" @if ($item->id == $parent_id) selected @endif>
  5 + @if ($level) {!! str_repeat('&nbsp;&nbsp;&nbsp;', $level) !!} @endif
  6 + {{ $item->name }}
  7 + </option>
  8 + @include('admin.job_titles.parent_id', ['level' => $level, 'parent' => $item->id])
  9 + @endforeach
  10 +@endif
resources/views/layout/admin.blade.php
... ... @@ -302,7 +302,7 @@
302 302 aria-label="submenu"
303 303 >
304 304 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
305   - <a class="w-full" href="{{ route('admin.job-titles') }}">Должности</a>
  305 + <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a>
306 306 </li>
307 307 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
308 308 <a class="w-full" href="{{ route('admin.categories.index') }}">Категории</a>
... ... @@ -695,7 +695,7 @@
695 695 aria-label="submenu"
696 696 >
697 697 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
698   - <a class="w-full" href="{{ route('admin.job-titles') }}">Должности</a>
  698 + <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a>
699 699 </li>
700 700 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
701 701 <a class="w-full" href="{{ route('admin.categories.index') }}">Категории</a>
... ... @@ -3,6 +3,7 @@
3 3 use App\Http\Controllers\Admin\AdminController;
4 4 use App\Http\Controllers\Admin\CategoryController;
5 5 use App\Http\Controllers\Admin\EmployersController;
  6 +use App\Http\Controllers\Admin\JobTitlesController;
6 7 use App\Http\Controllers\Admin\UsersController;
7 8 use App\Http\Controllers\Admin\WorkersController;
8 9 use App\Http\Controllers\Auth\LoginController;
... ... @@ -128,17 +129,24 @@ Route::group([
128 129 // кабинет - категории
129 130 //Route::get('categories', [AdminController::class, 'index'])->name('categories');
130 131 /*
131   - * CRUD-операции над настройками Компании
132   - */
  132 + * CRUD-операции над Справочником Категории
  133 + */
133 134 Route::resource('categories', CategoryController::class, ['except' => ['show']]);
134 135  
135 136  
136   - // кабинет - должности
137   - Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles');
  137 + //Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles');
  138 + /*
  139 + * кабинет - CRUD-операции по справочнику должности
  140 + *
  141 + */
  142 + Route::resource('job-titles', JobTitlesController::class, ['except' => ['show']]);
138 143  
139 144 // кабинет - сообщения
140 145 Route::get('messages', [MsgAnswersController::class, 'messages'])->name('messages');
141 146  
  147 + /*
  148 + * Расписанный подход в описании каждой директорий групп пользователей.
  149 + */
142 150 // кабинет - группы пользователей
143 151 Route::get('groups', [GroupsController::class, 'index'])->name('groups');
144 152 // кабинет - добавление форма группы пользователей