Compare commits
5 Commits
6ebc85c77a
...
42d8d5ce1d
Author | SHA1 | Date | |
---|---|---|---|
42d8d5ce1d | |||
99c5e8afe9 | |||
9ce9feafb7 | |||
5456e8ff91 | |||
cafe820a64 |
2
Gemfile
2
Gemfile
@ -77,3 +77,5 @@ gem "jsbundling-rails", "~> 1.3"
|
|||||||
group :production do
|
group :production do
|
||||||
gem "pg", "~> 1.5"
|
gem "pg", "~> 1.5"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
gem "tailwindcss-rails", "~> 3.2"
|
||||||
|
@ -385,6 +385,14 @@ GEM
|
|||||||
stimulus-rails (1.3.4)
|
stimulus-rails (1.3.4)
|
||||||
railties (>= 6.0.0)
|
railties (>= 6.0.0)
|
||||||
stringio (3.1.2)
|
stringio (3.1.2)
|
||||||
|
tailwindcss-rails (3.2.0)
|
||||||
|
railties (>= 7.0.0)
|
||||||
|
tailwindcss-ruby
|
||||||
|
tailwindcss-ruby (3.4.17-aarch64-linux)
|
||||||
|
tailwindcss-ruby (3.4.17-arm-linux)
|
||||||
|
tailwindcss-ruby (3.4.17-arm64-darwin)
|
||||||
|
tailwindcss-ruby (3.4.17-x86_64-darwin)
|
||||||
|
tailwindcss-ruby (3.4.17-x86_64-linux)
|
||||||
thor (1.3.2)
|
thor (1.3.2)
|
||||||
thruster (0.1.10)
|
thruster (0.1.10)
|
||||||
thruster (0.1.10-aarch64-linux)
|
thruster (0.1.10-aarch64-linux)
|
||||||
@ -455,6 +463,7 @@ DEPENDENCIES
|
|||||||
solid_queue
|
solid_queue
|
||||||
sqlite3 (>= 2.1)
|
sqlite3 (>= 2.1)
|
||||||
stimulus-rails
|
stimulus-rails
|
||||||
|
tailwindcss-rails (~> 3.2)
|
||||||
thruster
|
thruster
|
||||||
turbo-rails
|
turbo-rails
|
||||||
tzinfo-data
|
tzinfo-data
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
web: env RUBY_DEBUG_OPEN=true bin/rails server
|
web: env RUBY_DEBUG_OPEN=true bin/rails server
|
||||||
css: yarn watch:css
|
|
||||||
js: yarn build --watch
|
js: yarn build --watch
|
||||||
|
css: bin/rails tailwindcss:watch
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
//= link_tree ../images
|
//= link_tree ../images
|
||||||
// = link_tree ../builds
|
// = link_tree ../builds
|
||||||
|
//= link_tree ../builds
|
||||||
|
1
app/assets/images/music.svg
Normal file
1
app/assets/images/music.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg height='100px' width='100px' fill="#000000" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve"><g><path d="M15,29c-3.309,0-6,2.691-6,6c0,2.206,1.794,4,4,4s4-1.794,4-4h-2c0,1.103-0.897,2-2,2s-2-0.897-2-2c0-2.206,1.794-4,4-4 c3.309,0,6,2.691,6,6c0,4.411-3.589,8-8,8C7.486,45,3,40.514,3,35c0-4.057,1.984-7.869,5.308-10.195l10.9-7.63 C21.583,15.513,23,12.79,23,9.891C23,4.989,19.011,1,14.109,1C12.395,1,11,2.395,11,4.109v16.371l-3.839,2.687 C3.303,25.867,1,30.291,1,35c0,5.934,4.334,10.863,10,11.819V58c0,1.654-1.346,3-3,3s-3-1.346-3-3c0-0.551,0.449-1,1-1s1,0.449,1,1 v1h2v-1c0-1.654-1.346-3-3-3s-3,1.346-3,3c0,2.757,2.243,5,5,5s5-2.243,5-5V47c5.514,0,10-4.486,10-10C23,32.589,19.411,29,15,29z M13,4.109C13,3.498,13.498,3,14.109,3C17.909,3,21,6.091,21,9.891c0,2.247-1.099,4.357-2.939,5.646L13,19.079V4.109z"></path><path d="M31,45.22l10,2v-8.04l-12-2.4V49h-2c-2.206,0-4,1.794-4,4s1.794,4,4,4s4-1.794,4-4V45.22z M31,39.22l8,1.6v3.96l-8-1.6 V39.22z M29,53c0,1.103-0.897,2-2,2s-2-0.897-2-2s0.897-2,2-2h2V53z"></path><path d="M51,18.895V29h-2c-2.206,0-4,1.794-4,4s1.794,4,4,4s4-1.794,4-4v-5.895l8,0.8V31h-2c-2.206,0-4,1.794-4,4s1.794,4,4,4 s4-1.794,4-4V20.095L51,18.895z M51,33c0,1.103-0.897,2-2,2s-2-0.897-2-2s0.897-2,2-2h2V33z M61,35c0,1.103-0.897,2-2,2 s-2-0.897-2-2s0.897-2,2-2h2V35z M53,25.095v-3.99l8,0.8v3.99L53,25.095z"></path><path d="M43,9h2v12h2V5c0-2.206-1.794-4-4-4s-4,1.794-4,4S40.794,9,43,9z M43,3c1.103,0,2,0.897,2,2v2h-2c-1.103,0-2-0.897-2-2 S41.897,3,43,3z"></path><path d="M29,23c2.206,0,4-1.794,4-4V3h-2v12h-2c-2.206,0-4,1.794-4,4S26.794,23,29,23z M29,17h2v2c0,1.103-0.897,2-2,2 s-2-0.897-2-2S27.897,17,29,17z"></path><path d="M36.792,61.086l0.813,1.828c8.887-3.949,15.894-11.447,19.224-20.572l-1.879-0.686 C51.804,50.275,45.186,57.357,36.792,61.086z"></path><path d="M56.434,16.628c-1.505-3.76-3.624-7.221-6.298-10.286l-1.507,1.314c2.526,2.896,4.527,6.165,5.949,9.715L56.434,16.628z"></path><path d="M53.532,39.309l-1.902-0.617c-3.047,9.39-11.047,16.797-20.879,19.332l0.499,1.937 C41.737,57.256,50.275,49.343,53.532,39.309z"></path><path d="M51.841,16.554c-0.713-1.432-1.547-2.823-2.481-4.134l-1.629,1.16c0.873,1.226,1.653,2.526,2.32,3.866L51.841,16.554z"></path><path d="M34.081,34.615l1.846,0.771C36.639,33.677,37,31.866,37,30c0-2.683-0.761-5.29-2.201-7.539l-1.685,1.078 C34.348,25.466,35,27.7,35,30C35,31.6,34.69,33.152,34.081,34.615z"></path><path d="M41,30c0,2.291-0.424,4.522-1.261,6.631l1.859,0.737C42.528,35.023,43,32.544,43,30c0-6.212-2.815-11.967-7.723-15.79 l-1.229,1.578C38.466,19.229,41,24.409,41,30z"></path></g></svg>
|
After Width: | Height: | Size: 2.7 KiB |
@ -1,3 +1,3 @@
|
|||||||
@import 'bootstrap/dist/css/bootstrap';
|
@import 'bootstrap/dist/css/bootstrap';
|
||||||
@import 'bootstrap-icons/font/bootstrap-icons';
|
@import 'bootstrap-icons/font/bootstrap-icons';
|
||||||
@import './custom';
|
//@import './custom';
|
31
app/assets/stylesheets/application.tailwind.css
Normal file
31
app/assets/stylesheets/application.tailwind.css
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
@tailwind base;
|
||||||
|
@tailwind components;
|
||||||
|
@tailwind utilities;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
@layer components {
|
||||||
|
.btn-primary {
|
||||||
|
@apply py-2 px-4 bg-blue-200;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
@layer base {
|
||||||
|
h1, h2, h3, h4, h5, h6 {
|
||||||
|
@apply leading-none;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
@apply text-[3em] tracking-[-2px] mb-[30px] text-center;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
@apply text-[1.2em] tracking-[-1px] mb-[30px] text-center font-normal text-gray-400;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
@apply text-[1.1em] leading-[1.7];
|
||||||
|
}
|
||||||
|
}
|
@ -10,4 +10,7 @@ class StaticPagesController < ApplicationController
|
|||||||
|
|
||||||
def contact
|
def contact
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def demo
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
// Configure your import map in config/importmap.rb. Read more: https://github.com/rails/importmap-rails
|
// Configure your import map in config/importmap.rb. Read more: https://github.com/rails/importmap-rails
|
||||||
import "@hotwired/turbo-rails"
|
import "@hotwired/turbo-rails"
|
||||||
|
|
||||||
import './add_jquery'
|
// import './add_jquery'
|
||||||
|
|
||||||
import "jquery/dist/jquery"
|
// import "jquery/dist/jquery"
|
||||||
import "bootstrap/dist/js/bootstrap"
|
// import "bootstrap/dist/js/bootstrap"
|
||||||
|
|
||||||
|
import "flowbite/dist/flowbite.turbo"
|
||||||
|
|
||||||
import "./controllers"
|
import "./controllers"
|
||||||
|
|
||||||
|
@ -1,13 +1,10 @@
|
|||||||
<footer class="footer">
|
<footer class="footer footer-center bg-base-200 text-base-content rounded p-10">
|
||||||
<small>
|
<nav class="grid grid-flow-col gap-4">
|
||||||
The <a href="https://www.railstutorial.org">Ruby on Rails Tutorial</a>
|
<%= link_to "About", about_url, class: "link link-hover" %>
|
||||||
by <a href="https://www.michaelhartl.com">Michael Hartl</a>
|
<%= link_to "Contact", contact_url, class: "link link-hover" %>
|
||||||
</small>
|
<a href="https://news.railstutorial.org" class="text-gray-600 hover:text-gray-900">News</a>
|
||||||
<nav>
|
|
||||||
<ul>
|
|
||||||
<li><%= link_to "About", about_url %></li>
|
|
||||||
<li><%= link_to "Contact", contact_url %></li>
|
|
||||||
<li><a href="https://news.railstutorial.org">News</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
</nav>
|
||||||
|
<aside>
|
||||||
|
<p>Copyright © <%= Date.current.year %> - All right reserved by ACME Industries Ltd</p>
|
||||||
|
</aside>
|
||||||
</footer>
|
</footer>
|
@ -1,20 +1,10 @@
|
|||||||
<header class="navbar navbar-fixed-top navbar-inverse">
|
<div class="navbar bg-base-100 glass">
|
||||||
<div class="container">
|
<div class="navbar-start">
|
||||||
<%= link_to "sample app", root_url, id: "logo" %>
|
<%= link_to "sample app", root_url, id: "logo", class: "btn btn-ghost text-xl" %>
|
||||||
<nav>
|
</div>
|
||||||
<div class="navbar-header">
|
<div class="navbar-end">
|
||||||
<button type="button" class="navbar-toggle collapsed"
|
<div class="hidden lg:flex">
|
||||||
data-toggle="collapse"
|
<ul class="menu menu-horizontal px-1">
|
||||||
data-target="#bs-example-navbar-collapse-1"
|
|
||||||
aria-expanded="false">
|
|
||||||
<span class="sr-only">Toggle navigation</span>
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<ul class="nav navbar-nav navbar-right collapse navbar-collapse"
|
|
||||||
id="bs-example-navbar-collapse-1">
|
|
||||||
<li><%= link_to "Home", root_url %></li>
|
<li><%= link_to "Home", root_url %></li>
|
||||||
<li><%= link_to "Help", help_url %></li>
|
<li><%= link_to "Help", help_url %></li>
|
||||||
<% if logged_in? %>
|
<% if logged_in? %>
|
||||||
@ -36,7 +26,68 @@
|
|||||||
<li><%= link_to "Log in", login_path %></li>
|
<li><%= link_to "Log in", login_path %></li>
|
||||||
<% end %>
|
<% end %>
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</div>
|
||||||
</div>
|
<details class="dropdown dropdown-end">
|
||||||
|
<summary tabindex="0" role="button" class="btn btn-ghost lg:hidden">
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
class="h-5 w-5"
|
||||||
|
fill="none"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
stroke="currentColor">
|
||||||
|
<path
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke-width="2"
|
||||||
|
d="M4 6h16M4 12h8m-8 6h16" />
|
||||||
|
</svg>
|
||||||
|
</summary>
|
||||||
|
<ul
|
||||||
|
tabindex="0"
|
||||||
|
class="menu menu-sm dropdown-content bg-base-100 rounded-box z-[1] mt-3 w-52 p-2 shadow">
|
||||||
|
<li><%= link_to "Home", root_url %></li>
|
||||||
|
<li><%= link_to "Help", help_url %></li>
|
||||||
|
<% if logged_in? %>
|
||||||
|
<li><%= link_to "Users", users_path %></li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
Account <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><%= link_to "Profile", current_user %></li>
|
||||||
|
<li><%= link_to "Settings", edit_user_path(current_user) %></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li>
|
||||||
|
<%= link_to "Log out", logout_path, data: { turbo_method: :delete } %>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<% else %>
|
||||||
|
<li><%= link_to "Log in", login_path %></li>
|
||||||
|
<% end %>
|
||||||
|
</ul>
|
||||||
|
</details>
|
||||||
|
<label class="swap swap-rotate">
|
||||||
|
<!-- this hidden checkbox controls the state -->
|
||||||
|
<input type="checkbox" class="theme-controller" value="light" />
|
||||||
|
|
||||||
</header>
|
<!-- sun icon -->
|
||||||
|
<svg
|
||||||
|
class="swap-off h-10 w-10 fill-current"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
viewBox="0 0 24 24">
|
||||||
|
<path
|
||||||
|
d="M5.64,17l-.71.71a1,1,0,0,0,0,1.41,1,1,0,0,0,1.41,0l.71-.71A1,1,0,0,0,5.64,17ZM5,12a1,1,0,0,0-1-1H3a1,1,0,0,0,0,2H4A1,1,0,0,0,5,12Zm7-7a1,1,0,0,0,1-1V3a1,1,0,0,0-2,0V4A1,1,0,0,0,12,5ZM5.64,7.05a1,1,0,0,0,.7.29,1,1,0,0,0,.71-.29,1,1,0,0,0,0-1.41l-.71-.71A1,1,0,0,0,4.93,6.34Zm12,.29a1,1,0,0,0,.7-.29l.71-.71a1,1,0,1,0-1.41-1.41L17,5.64a1,1,0,0,0,0,1.41A1,1,0,0,0,17.66,7.34ZM21,11H20a1,1,0,0,0,0,2h1a1,1,0,0,0,0-2Zm-9,8a1,1,0,0,0-1,1v1a1,1,0,0,0,2,0V20A1,1,0,0,0,12,19ZM18.36,17A1,1,0,0,0,17,18.36l.71.71a1,1,0,0,0,1.41,0,1,1,0,0,0,0-1.41ZM12,6.5A5.5,5.5,0,1,0,17.5,12,5.51,5.51,0,0,0,12,6.5Zm0,9A3.5,3.5,0,1,1,15.5,12,3.5,3.5,0,0,1,12,15.5Z" />
|
||||||
|
</svg>
|
||||||
|
|
||||||
|
<!-- moon icon -->
|
||||||
|
<svg
|
||||||
|
class="swap-on h-10 w-10 fill-current"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
viewBox="0 0 24 24">
|
||||||
|
<path
|
||||||
|
d="M21.64,13a1,1,0,0,0-1.05-.14,8.05,8.05,0,0,1-3.37.73A8.15,8.15,0,0,1,9.08,5.49a8.59,8.59,0,0,1,.25-2A1,1,0,0,0,8,2.36,10.14,10.14,0,1,0,22,14.05,1,1,0,0,0,21.64,13Zm-9.5,6.69A8.14,8.14,0,0,1,7.08,5.22v.27A10.15,10.15,0,0,0,17.22,15.63a9.79,9.79,0,0,0,2.1-.22A8.11,8.11,0,0,1,12.14,19.73Z" />
|
||||||
|
</svg>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -5,13 +5,13 @@
|
|||||||
<title><%= full_title(yield(:title)) %></title>
|
<title><%= full_title(yield(:title)) %></title>
|
||||||
<%= render 'layouts/rails_default' %>
|
<%= render 'layouts/rails_default' %>
|
||||||
<%= render 'layouts/shim' %>
|
<%= render 'layouts/shim' %>
|
||||||
<%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
|
<%= stylesheet_link_tag "tailwind", "data-turbo-track": "reload" %>
|
||||||
<%= javascript_include_tag "application", "data-turbo-track": "reload", type: "module" %>
|
<%= javascript_include_tag "application", "data-turbo-track": "reload", type: "module" %>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<%= render 'layouts/header' %>
|
<%= render 'layouts/header' %>
|
||||||
<div class="container">
|
<div class="">
|
||||||
<% flash.each do |message_type, message| %>
|
<% flash.each do |message_type, message| %>
|
||||||
<%= content_tag(:div, message, class: "alert alert-#{message_type}") %>
|
<%= content_tag(:div, message, class: "alert alert-#{message_type}") %>
|
||||||
<!-- <div class="alert alert-<%#= message_type %>"><%#= message %></div>-->
|
<!-- <div class="alert alert-<%#= message_type %>"><%#= message %></div>-->
|
||||||
@ -19,9 +19,39 @@
|
|||||||
<%= yield %>
|
<%= yield %>
|
||||||
<%= render 'layouts/footer' %>
|
<%= render 'layouts/footer' %>
|
||||||
<%#= debug(params) if Rails.env.development? %>
|
<%#= debug(params) if Rails.env.development? %>
|
||||||
<%= debug(params.to_yaml) if Rails.env.development? %>
|
<%#= debug(params.to_yaml) if Rails.env.development? %>
|
||||||
<%= debug(session) if Rails.env.development? %>
|
<%#= debug(session) if Rails.env.development? %>
|
||||||
<%= debug(Time.now) if Rails.env.development? %>
|
<%#= debug(Time.now) if Rails.env.development? %>
|
||||||
|
|
||||||
|
<% if Rails.env.development? %>
|
||||||
|
<div class="container mx-auto px-4 mb-8 pt-4">
|
||||||
|
<div class="max-w-4xl mx-auto border-2 border-gray-300 rounded-lg p-6 bg-gray-100">
|
||||||
|
<!-- Params -->
|
||||||
|
<div class="mb-6">
|
||||||
|
<h3 class="text-gray-700 font-bold mb-2">Params:</h3>
|
||||||
|
<pre class="bg-white p-4 rounded shadow overflow-x-auto text-sm text-gray-600 border border-gray-200">
|
||||||
|
<%= params.to_yaml %>
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Session -->
|
||||||
|
<div class="mb-6">
|
||||||
|
<h3 class="text-gray-700 font-bold mb-2">Session:</h3>
|
||||||
|
<pre class="bg-white p-4 rounded shadow overflow-x-auto text-sm text-gray-600 border border-gray-200">
|
||||||
|
<%= session %>
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Time -->
|
||||||
|
<div>
|
||||||
|
<h3 class="text-gray-700 font-bold mb-2">Current Time:</h3>
|
||||||
|
<pre class="bg-white p-4 rounded shadow overflow-x-auto text-sm text-gray-600 border border-gray-200">
|
||||||
|
<%= Time.now %>
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
10
app/views/static_pages/demo.html.erb
Normal file
10
app/views/static_pages/demo.html.erb
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<div class="flex justify-center">
|
||||||
|
<div class="mx-4 order-last">
|
||||||
|
<%= image_tag("music.svg", alt:"music", width: "100") %>
|
||||||
|
</div>
|
||||||
|
<div class="mx-4 self-center">
|
||||||
|
<h1>Welcome to NorthBy</h1>
|
||||||
|
<h2>A premium in sight and sound</h2>
|
||||||
|
<button>Learn More</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -1,16 +1,20 @@
|
|||||||
<% provide(:title, "Home") %>
|
<% provide(:title, "Home") %>
|
||||||
<div class="center jumbotron">
|
<div class="hero bg-base-200 min-h-screen">
|
||||||
<h1>Welcome to the Sample App</h1>
|
<div class="hero-content text-center">
|
||||||
<h2>
|
<div class="max-w-md">
|
||||||
This is the home page for the
|
<h1 class="text-5xl font-bold">Welcome to the Sample App</h1>
|
||||||
<a href="https://www.railstutorial.org">Ruby on Rails Tutorial</a>
|
<p class="py-6">
|
||||||
Sample application.
|
This is the home page for the
|
||||||
</h2>
|
<a href="https://www.railstutorial.org">Ruby on Rails Tutorial</a>
|
||||||
|
Sample application.
|
||||||
<%= link_to "Sing up now!", signup_path, class:"btn btn-lg btn-primary" %>
|
</p>
|
||||||
|
<%= link_to "Sing up now!", signup_path, class:"btn btn-lg btn-primary" %>
|
||||||
|
<%= link_to image_tag("rails.svg", alt:"Rails logo", width: "200"),
|
||||||
|
"https://rubyonrails.org/" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<%= link_to image_tag("rails.svg", alt:"Rails logo", width: "200"),
|
|
||||||
"https://rubyonrails.org/" %>
|
|
||||||
<%#= link_to image_tag("kitten.jpg", alt:"Kitten", width:"200") %>
|
<%#= link_to image_tag("kitten.jpg", alt:"Kitten", width:"200") %>
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,18 +1,36 @@
|
|||||||
|
|
||||||
<%= form_with(model: @user, local: true) do |f| %>
|
<%= form_with(model: @user, local: true, class: "space-y-4") do |f| %>
|
||||||
<%= render 'shared/error_messages' %>
|
<%= render 'shared/error_messages' %>
|
||||||
|
|
||||||
<%= f.label :name %>
|
<div class="form-control">
|
||||||
<%= f.text_field :name, class: 'form-control' %>
|
<%= f.label :name, class: "label" do %>
|
||||||
|
<span class="label-text">Name</span>
|
||||||
|
<% end %>
|
||||||
|
<%= f.text_field :name, class: "input input-bordered w-full" %>
|
||||||
|
</div>
|
||||||
|
|
||||||
<%= f.label :email %>
|
<div class="form-control">
|
||||||
<%= f.email_field :email, class: 'form-control' %>
|
<%= f.label :email, class: "label" do %>
|
||||||
|
<span class="label-text">Email</span>
|
||||||
|
<% end %>
|
||||||
|
<%= f.email_field :email, class: "input input-bordered w-full" %>
|
||||||
|
</div>
|
||||||
|
|
||||||
<%= f.label :password %>
|
<div class="form-control">
|
||||||
<%= f.password_field :password, class: 'form-control' %>
|
<%= f.label :password, class: "label" do %>
|
||||||
|
<span class="label-text">Password</span>
|
||||||
|
<% end %>
|
||||||
|
<%= f.password_field :password, class: "input input-bordered w-full" %>
|
||||||
|
</div>
|
||||||
|
|
||||||
<%= f.label :password_confirmation, "Confirmation" %>
|
<div class="form-control">
|
||||||
<%= f.password_field :password_confirmation, class: 'form-control' %>
|
<%= f.label :password_confirmation, class: "label" do %>
|
||||||
|
<span class="label-text">Confirmation</span>
|
||||||
|
<% end %>
|
||||||
|
<%= f.password_field :password_confirmation, class: "input input-bordered w-full" %>
|
||||||
|
</div>
|
||||||
|
|
||||||
<%= f.submit yield(:button_text), class: "btn btn-primary" %>
|
<div class="form-control mt-6">
|
||||||
<% end %>
|
<%= f.submit yield(:button_text), class: "btn btn-primary" %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
@ -1,9 +1,9 @@
|
|||||||
<% provide(:title, 'Sign up') %>
|
<% provide(:title, 'Sign up') %>
|
||||||
<% provide(:button_text, 'Create my account') %>
|
<% provide(:button_text, 'Create my account') %>
|
||||||
<h1>Sign up</h1>
|
<div class="container mx-auto px-4">
|
||||||
|
<h1 class="text-3xl font-bold text-center my-8">Sign up</h1>
|
||||||
|
|
||||||
<div class="row">
|
<div class="max-w-md mx-auto">
|
||||||
<div class="col-md-6 col-md-offset-3">
|
|
||||||
<%= render 'form' %>
|
<%= render 'form' %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
9
bin/dev
9
bin/dev
@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
if gem list --no-installed --exact --silent foreman; then
|
if ! gem list foreman -i --silent; then
|
||||||
echo "Installing foreman..."
|
echo "Installing foreman..."
|
||||||
gem install foreman
|
gem install foreman
|
||||||
fi
|
fi
|
||||||
@ -8,4 +8,9 @@ fi
|
|||||||
# Default to port 3000 if not specified
|
# Default to port 3000 if not specified
|
||||||
export PORT="${PORT:-3000}"
|
export PORT="${PORT:-3000}"
|
||||||
|
|
||||||
exec foreman start -f Procfile.dev --env /dev/null "$@"
|
# Let the debug gem allow remote connections,
|
||||||
|
# but avoid loading until `debugger` is called
|
||||||
|
export RUBY_DEBUG_OPEN="true"
|
||||||
|
export RUBY_DEBUG_LAZY="true"
|
||||||
|
|
||||||
|
exec foreman start -f Procfile.dev "$@"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
Rails.application.routes.draw do
|
Rails.application.routes.draw do
|
||||||
get "password_resets/new"
|
# get "password_resets/new"
|
||||||
get "password_resets/edit"
|
# get "password_resets/edit"
|
||||||
# get "sessions/new"
|
# get "sessions/new"
|
||||||
# get "users/new"
|
# get "users/new"
|
||||||
# get "static_pages/home"
|
# get "static_pages/home"
|
||||||
@ -9,6 +9,8 @@ Rails.application.routes.draw do
|
|||||||
# get "static_pages/contact"
|
# get "static_pages/contact"
|
||||||
|
|
||||||
root "static_pages#home"
|
root "static_pages#home"
|
||||||
|
|
||||||
|
get "/demo", to: "static_pages#demo"
|
||||||
|
|
||||||
get "/help", to: "static_pages#help"
|
get "/help", to: "static_pages#help"
|
||||||
get "/about", to: "static_pages#about"
|
get "/about", to: "static_pages#about"
|
||||||
@ -19,6 +21,8 @@ Rails.application.routes.draw do
|
|||||||
post "/login", to: "sessions#create"
|
post "/login", to: "sessions#create"
|
||||||
delete "/logout", to: "sessions#destroy"
|
delete "/logout", to: "sessions#destroy"
|
||||||
|
|
||||||
|
get "pages/home"
|
||||||
|
|
||||||
resources :users
|
resources :users
|
||||||
resources :account_activations, only: [ :edit ]
|
resources :account_activations, only: [ :edit ]
|
||||||
resources :password_resets, only: [ :new, :create, :edit, :update ]
|
resources :password_resets, only: [ :new, :create, :edit, :update ]
|
||||||
|
36
config/tailwind.config.js
Normal file
36
config/tailwind.config.js
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
const defaultTheme = require('tailwindcss/defaultTheme')
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
content: [
|
||||||
|
'./public/*.html',
|
||||||
|
'./app/helpers/**/*.rb',
|
||||||
|
'./app/javascript/**/*.js',
|
||||||
|
'./app/views/**/*.{erb,haml,html,slim}',
|
||||||
|
'./node_modules/flowbite/**/*.js'
|
||||||
|
],
|
||||||
|
theme: {
|
||||||
|
extend: {
|
||||||
|
fontFamily: {
|
||||||
|
sans: ['Inter var', ...defaultTheme.fontFamily.sans],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
require('@tailwindcss/typography'),
|
||||||
|
require('daisyui'),
|
||||||
|
// require('flowbite/plugin')
|
||||||
|
// require('@tailwindcss/forms'),
|
||||||
|
// require('@tailwindcss/typography'),
|
||||||
|
// require('@tailwindcss/container-queries'),
|
||||||
|
],
|
||||||
|
daisyui: {
|
||||||
|
themes: false, // false: only light + dark | true: all themes | array: specific themes like this ["light", "dark", "cupcake"]
|
||||||
|
darkTheme: "dark", // name of one of the included themes for dark mode
|
||||||
|
base: true, // applies background color and foreground color for root element by default
|
||||||
|
styled: true, // include daisyUI colors and design decisions for all components
|
||||||
|
utils: true, // adds responsive and modifier utility classes
|
||||||
|
prefix: "", // prefix for daisyUI classnames (components, modifiers and responsive class names. Not colors)
|
||||||
|
logs: true, // Shows info about daisyUI version and used config in the console when building your CSS
|
||||||
|
themeRoot: ":root", // The element that receives theme color CSS variables
|
||||||
|
},
|
||||||
|
}
|
1032
package-lock.json
generated
1032
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -8,6 +8,7 @@
|
|||||||
"autoprefixer": "^10.4.20",
|
"autoprefixer": "^10.4.20",
|
||||||
"bootstrap": "3",
|
"bootstrap": "3",
|
||||||
"bootstrap-icons": "^1.11.3",
|
"bootstrap-icons": "^1.11.3",
|
||||||
|
"flowbite": "^2.5.2",
|
||||||
"jquery": "^3.7.1",
|
"jquery": "^3.7.1",
|
||||||
"nodemon": "^3.1.9",
|
"nodemon": "^3.1.9",
|
||||||
"postcss": "^8.4.49",
|
"postcss": "^8.4.49",
|
||||||
@ -25,6 +26,8 @@
|
|||||||
"defaults"
|
"defaults"
|
||||||
],
|
],
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@tailwindcss/typography": "^0.5.16",
|
||||||
|
"daisyui": "^4.12.23",
|
||||||
"esbuild": "^0.24.2"
|
"esbuild": "^0.24.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
201
yarn.lock
201
yarn.lock
@ -129,7 +129,7 @@
|
|||||||
|
|
||||||
"@hotwired/stimulus@^3.2.2":
|
"@hotwired/stimulus@^3.2.2":
|
||||||
version "3.2.2"
|
version "3.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/@hotwired/stimulus/-/stimulus-3.2.2.tgz#071aab59c600fed95b97939e605ff261a4251608"
|
resolved "https://registry.npmjs.org/@hotwired/stimulus/-/stimulus-3.2.2.tgz"
|
||||||
integrity sha512-eGeIqNOQpXoPAIP7tC1+1Yc1yl1xnwYqg+3mzqxyrbE5pg5YFBZcA6YoTiByJB6DKAEsiWtl6tjTJS4IYtbB7A==
|
integrity sha512-eGeIqNOQpXoPAIP7tC1+1Yc1yl1xnwYqg+3mzqxyrbE5pg5YFBZcA6YoTiByJB6DKAEsiWtl6tjTJS4IYtbB7A==
|
||||||
|
|
||||||
"@hotwired/turbo-rails@^8.0.12":
|
"@hotwired/turbo-rails@^8.0.12":
|
||||||
@ -255,7 +255,7 @@
|
|||||||
"@parcel/watcher-win32-ia32" "2.5.0"
|
"@parcel/watcher-win32-ia32" "2.5.0"
|
||||||
"@parcel/watcher-win32-x64" "2.5.0"
|
"@parcel/watcher-win32-x64" "2.5.0"
|
||||||
|
|
||||||
"@popperjs/core@^2.11.8":
|
"@popperjs/core@^2.11.8", "@popperjs/core@^2.9.3":
|
||||||
version "2.11.8"
|
version "2.11.8"
|
||||||
resolved "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz"
|
resolved "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz"
|
||||||
integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==
|
integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==
|
||||||
@ -265,11 +265,51 @@
|
|||||||
resolved "https://registry.npmjs.org/@rails/actioncable/-/actioncable-7.2.201.tgz"
|
resolved "https://registry.npmjs.org/@rails/actioncable/-/actioncable-7.2.201.tgz"
|
||||||
integrity sha512-wsTdWoZ5EfG5k3t7ORdyQF0ZmDEgN4aVPCanHAiNEwCROqibSZMXXmCbH7IDJUVri4FOeAVwwbPINI7HVHPKBw==
|
integrity sha512-wsTdWoZ5EfG5k3t7ORdyQF0ZmDEgN4aVPCanHAiNEwCROqibSZMXXmCbH7IDJUVri4FOeAVwwbPINI7HVHPKBw==
|
||||||
|
|
||||||
|
"@rollup/plugin-node-resolve@^15.2.3":
|
||||||
|
version "15.3.1"
|
||||||
|
resolved "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz"
|
||||||
|
integrity sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==
|
||||||
|
dependencies:
|
||||||
|
"@rollup/pluginutils" "^5.0.1"
|
||||||
|
"@types/resolve" "1.20.2"
|
||||||
|
deepmerge "^4.2.2"
|
||||||
|
is-module "^1.0.0"
|
||||||
|
resolve "^1.22.1"
|
||||||
|
|
||||||
|
"@rollup/pluginutils@^5.0.1":
|
||||||
|
version "5.1.4"
|
||||||
|
resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz"
|
||||||
|
integrity sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==
|
||||||
|
dependencies:
|
||||||
|
"@types/estree" "^1.0.0"
|
||||||
|
estree-walker "^2.0.2"
|
||||||
|
picomatch "^4.0.2"
|
||||||
|
|
||||||
"@sindresorhus/merge-streams@^2.1.0":
|
"@sindresorhus/merge-streams@^2.1.0":
|
||||||
version "2.3.0"
|
version "2.3.0"
|
||||||
resolved "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz"
|
resolved "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz"
|
||||||
integrity sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==
|
integrity sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==
|
||||||
|
|
||||||
|
"@tailwindcss/typography@^0.5.16":
|
||||||
|
version "0.5.16"
|
||||||
|
resolved "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.16.tgz"
|
||||||
|
integrity sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==
|
||||||
|
dependencies:
|
||||||
|
lodash.castarray "^4.4.0"
|
||||||
|
lodash.isplainobject "^4.0.6"
|
||||||
|
lodash.merge "^4.6.2"
|
||||||
|
postcss-selector-parser "6.0.10"
|
||||||
|
|
||||||
|
"@types/estree@^1.0.0":
|
||||||
|
version "1.0.6"
|
||||||
|
resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz"
|
||||||
|
integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==
|
||||||
|
|
||||||
|
"@types/resolve@1.20.2":
|
||||||
|
version "1.20.2"
|
||||||
|
resolved "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz"
|
||||||
|
integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==
|
||||||
|
|
||||||
ansi-regex@^5.0.1:
|
ansi-regex@^5.0.1:
|
||||||
version "5.0.1"
|
version "5.0.1"
|
||||||
resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
|
resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
|
||||||
@ -319,7 +359,7 @@ bootstrap-icons@^1.11.3:
|
|||||||
|
|
||||||
bootstrap@3:
|
bootstrap@3:
|
||||||
version "3.4.1"
|
version "3.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.4.1.tgz#c3a347d419e289ad11f4033e3c4132b87c081d72"
|
resolved "https://registry.npmjs.org/bootstrap/-/bootstrap-3.4.1.tgz"
|
||||||
integrity sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==
|
integrity sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==
|
||||||
|
|
||||||
brace-expansion@^1.1.7:
|
brace-expansion@^1.1.7:
|
||||||
@ -347,6 +387,11 @@ browserslist@^4.23.3:
|
|||||||
node-releases "^2.0.19"
|
node-releases "^2.0.19"
|
||||||
update-browserslist-db "^1.1.1"
|
update-browserslist-db "^1.1.1"
|
||||||
|
|
||||||
|
camelcase-css@^2.0.1:
|
||||||
|
version "2.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
|
||||||
|
integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
|
||||||
|
|
||||||
caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001688:
|
caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001688:
|
||||||
version "1.0.30001690"
|
version "1.0.30001690"
|
||||||
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz"
|
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz"
|
||||||
@ -400,6 +445,34 @@ concat-map@0.0.1:
|
|||||||
resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
|
resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
|
||||||
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
|
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
|
||||||
|
|
||||||
|
css-selector-tokenizer@^0.8:
|
||||||
|
version "0.8.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.8.0.tgz#88267ef6238e64f2215ea2764b3e2cf498b845dd"
|
||||||
|
integrity sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg==
|
||||||
|
dependencies:
|
||||||
|
cssesc "^3.0.0"
|
||||||
|
fastparse "^1.1.2"
|
||||||
|
|
||||||
|
cssesc@^3.0.0:
|
||||||
|
version "3.0.0"
|
||||||
|
resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz"
|
||||||
|
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
|
||||||
|
|
||||||
|
culori@^3:
|
||||||
|
version "3.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/culori/-/culori-3.3.0.tgz#e33530adbd124d53bd6550394397e695eaaed739"
|
||||||
|
integrity sha512-pHJg+jbuFsCjz9iclQBqyL3B2HLCBF71BwVNujUYEvCeQMvV97R59MNK3R2+jgJ3a1fcZgI9B3vYgz8lzr/BFQ==
|
||||||
|
|
||||||
|
daisyui@^4.12.23:
|
||||||
|
version "4.12.23"
|
||||||
|
resolved "https://registry.yarnpkg.com/daisyui/-/daisyui-4.12.23.tgz#3fc370ed4c226c9c811d223da1ba6a56ac16d777"
|
||||||
|
integrity sha512-EM38duvxutJ5PD65lO/AFMpcw+9qEy6XAZrTpzp7WyaPeO/l+F/Qiq0ECHHmFNcFXh5aVoALY4MGrrxtCiaQCQ==
|
||||||
|
dependencies:
|
||||||
|
css-selector-tokenizer "^0.8"
|
||||||
|
culori "^3"
|
||||||
|
picocolors "^1"
|
||||||
|
postcss-js "^4"
|
||||||
|
|
||||||
debug@^4:
|
debug@^4:
|
||||||
version "4.4.0"
|
version "4.4.0"
|
||||||
resolved "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz"
|
resolved "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz"
|
||||||
@ -407,6 +480,11 @@ debug@^4:
|
|||||||
dependencies:
|
dependencies:
|
||||||
ms "^2.1.3"
|
ms "^2.1.3"
|
||||||
|
|
||||||
|
deepmerge@^4.2.2:
|
||||||
|
version "4.3.1"
|
||||||
|
resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz"
|
||||||
|
integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
|
||||||
|
|
||||||
dependency-graph@^0.11.0:
|
dependency-graph@^0.11.0:
|
||||||
version "0.11.0"
|
version "0.11.0"
|
||||||
resolved "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz"
|
resolved "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz"
|
||||||
@ -463,6 +541,11 @@ escalade@^3.1.1, escalade@^3.2.0:
|
|||||||
resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz"
|
resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz"
|
||||||
integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
|
integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
|
||||||
|
|
||||||
|
estree-walker@^2.0.2:
|
||||||
|
version "2.0.2"
|
||||||
|
resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz"
|
||||||
|
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
|
||||||
|
|
||||||
fast-glob@^3.3.2:
|
fast-glob@^3.3.2:
|
||||||
version "3.3.2"
|
version "3.3.2"
|
||||||
resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz"
|
resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz"
|
||||||
@ -474,6 +557,11 @@ fast-glob@^3.3.2:
|
|||||||
merge2 "^1.3.0"
|
merge2 "^1.3.0"
|
||||||
micromatch "^4.0.4"
|
micromatch "^4.0.4"
|
||||||
|
|
||||||
|
fastparse@^1.1.2:
|
||||||
|
version "1.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9"
|
||||||
|
integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==
|
||||||
|
|
||||||
fastq@^1.6.0:
|
fastq@^1.6.0:
|
||||||
version "1.18.0"
|
version "1.18.0"
|
||||||
resolved "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz"
|
resolved "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz"
|
||||||
@ -488,6 +576,23 @@ fill-range@^7.1.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
to-regex-range "^5.0.1"
|
to-regex-range "^5.0.1"
|
||||||
|
|
||||||
|
flowbite-datepicker@^1.3.0:
|
||||||
|
version "1.3.2"
|
||||||
|
resolved "https://registry.npmjs.org/flowbite-datepicker/-/flowbite-datepicker-1.3.2.tgz"
|
||||||
|
integrity sha512-6Nfm0MCVX3mpaR7YSCjmEO2GO8CDt6CX8ZpQnGdeu03WUCWtEPQ/uy0PUiNtIJjJZWnX0Cm3H55MOhbD1g+E/g==
|
||||||
|
dependencies:
|
||||||
|
"@rollup/plugin-node-resolve" "^15.2.3"
|
||||||
|
flowbite "^2.0.0"
|
||||||
|
|
||||||
|
flowbite@^2.0.0, flowbite@^2.5.2:
|
||||||
|
version "2.5.2"
|
||||||
|
resolved "https://registry.npmjs.org/flowbite/-/flowbite-2.5.2.tgz"
|
||||||
|
integrity sha512-kwFD3n8/YW4EG8GlY3Od9IoKND97kitO+/ejISHSqpn3vw2i5K/+ZI8Jm2V+KC4fGdnfi0XZ+TzYqQb4Q1LshA==
|
||||||
|
dependencies:
|
||||||
|
"@popperjs/core" "^2.9.3"
|
||||||
|
flowbite-datepicker "^1.3.0"
|
||||||
|
mini-svg-data-uri "^1.4.3"
|
||||||
|
|
||||||
fraction.js@^4.3.7:
|
fraction.js@^4.3.7:
|
||||||
version "4.3.7"
|
version "4.3.7"
|
||||||
resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz"
|
resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz"
|
||||||
@ -507,6 +612,11 @@ fsevents@~2.3.2:
|
|||||||
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
|
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
|
||||||
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
|
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
|
||||||
|
|
||||||
|
function-bind@^1.1.2:
|
||||||
|
version "1.1.2"
|
||||||
|
resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz"
|
||||||
|
integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
|
||||||
|
|
||||||
get-caller-file@^2.0.5:
|
get-caller-file@^2.0.5:
|
||||||
version "2.0.5"
|
version "2.0.5"
|
||||||
resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"
|
resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"
|
||||||
@ -546,6 +656,13 @@ has-flag@^3.0.0:
|
|||||||
resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
|
resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
|
||||||
integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
|
integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
|
||||||
|
|
||||||
|
hasown@^2.0.2:
|
||||||
|
version "2.0.2"
|
||||||
|
resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz"
|
||||||
|
integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
|
||||||
|
dependencies:
|
||||||
|
function-bind "^1.1.2"
|
||||||
|
|
||||||
ignore-by-default@^1.0.1:
|
ignore-by-default@^1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz"
|
resolved "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz"
|
||||||
@ -568,6 +685,13 @@ is-binary-path@~2.1.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
binary-extensions "^2.0.0"
|
binary-extensions "^2.0.0"
|
||||||
|
|
||||||
|
is-core-module@^2.16.0:
|
||||||
|
version "2.16.1"
|
||||||
|
resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz"
|
||||||
|
integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==
|
||||||
|
dependencies:
|
||||||
|
hasown "^2.0.2"
|
||||||
|
|
||||||
is-extglob@^2.1.1:
|
is-extglob@^2.1.1:
|
||||||
version "2.1.1"
|
version "2.1.1"
|
||||||
resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
|
resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
|
||||||
@ -585,6 +709,11 @@ is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
is-extglob "^2.1.1"
|
is-extglob "^2.1.1"
|
||||||
|
|
||||||
|
is-module@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz"
|
||||||
|
integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==
|
||||||
|
|
||||||
is-number@^7.0.0:
|
is-number@^7.0.0:
|
||||||
version "7.0.0"
|
version "7.0.0"
|
||||||
resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
|
resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
|
||||||
@ -609,6 +738,21 @@ lilconfig@^3.1.1:
|
|||||||
resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz"
|
resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz"
|
||||||
integrity sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==
|
integrity sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==
|
||||||
|
|
||||||
|
lodash.castarray@^4.4.0:
|
||||||
|
version "4.4.0"
|
||||||
|
resolved "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz"
|
||||||
|
integrity sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==
|
||||||
|
|
||||||
|
lodash.isplainobject@^4.0.6:
|
||||||
|
version "4.0.6"
|
||||||
|
resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz"
|
||||||
|
integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==
|
||||||
|
|
||||||
|
lodash.merge@^4.6.2:
|
||||||
|
version "4.6.2"
|
||||||
|
resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz"
|
||||||
|
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
|
||||||
|
|
||||||
merge2@^1.3.0:
|
merge2@^1.3.0:
|
||||||
version "1.4.1"
|
version "1.4.1"
|
||||||
resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
|
resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
|
||||||
@ -622,6 +766,11 @@ micromatch@^4.0.4, micromatch@^4.0.5:
|
|||||||
braces "^3.0.3"
|
braces "^3.0.3"
|
||||||
picomatch "^2.3.1"
|
picomatch "^2.3.1"
|
||||||
|
|
||||||
|
mini-svg-data-uri@^1.4.3:
|
||||||
|
version "1.4.4"
|
||||||
|
resolved "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz"
|
||||||
|
integrity sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==
|
||||||
|
|
||||||
minimatch@^3.1.2:
|
minimatch@^3.1.2:
|
||||||
version "3.1.2"
|
version "3.1.2"
|
||||||
resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
|
resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
|
||||||
@ -675,12 +824,17 @@ normalize-range@^0.1.2:
|
|||||||
resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz"
|
resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz"
|
||||||
integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
|
integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
|
||||||
|
|
||||||
|
path-parse@^1.0.7:
|
||||||
|
version "1.0.7"
|
||||||
|
resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
|
||||||
|
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
|
||||||
|
|
||||||
path-type@^5.0.0:
|
path-type@^5.0.0:
|
||||||
version "5.0.0"
|
version "5.0.0"
|
||||||
resolved "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz"
|
resolved "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz"
|
||||||
integrity sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==
|
integrity sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==
|
||||||
|
|
||||||
picocolors@^1.0.0, picocolors@^1.0.1, picocolors@^1.1.0, picocolors@^1.1.1:
|
picocolors@^1, picocolors@^1.0.0, picocolors@^1.0.1, picocolors@^1.1.0, picocolors@^1.1.1:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz"
|
resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz"
|
||||||
integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
|
integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
|
||||||
@ -690,6 +844,11 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
|
|||||||
resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
|
resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
|
||||||
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
|
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
|
||||||
|
|
||||||
|
picomatch@^4.0.2:
|
||||||
|
version "4.0.2"
|
||||||
|
resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz"
|
||||||
|
integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==
|
||||||
|
|
||||||
pify@^2.3.0:
|
pify@^2.3.0:
|
||||||
version "2.3.0"
|
version "2.3.0"
|
||||||
resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
|
resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
|
||||||
@ -713,6 +872,13 @@ postcss-cli@^11.0.0:
|
|||||||
slash "^5.0.0"
|
slash "^5.0.0"
|
||||||
yargs "^17.0.0"
|
yargs "^17.0.0"
|
||||||
|
|
||||||
|
postcss-js@^4:
|
||||||
|
version "4.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2"
|
||||||
|
integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==
|
||||||
|
dependencies:
|
||||||
|
camelcase-css "^2.0.1"
|
||||||
|
|
||||||
postcss-load-config@^5.0.0:
|
postcss-load-config@^5.0.0:
|
||||||
version "5.1.0"
|
version "5.1.0"
|
||||||
resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.1.0.tgz"
|
resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.1.0.tgz"
|
||||||
@ -729,6 +895,14 @@ postcss-reporter@^7.0.0:
|
|||||||
picocolors "^1.0.0"
|
picocolors "^1.0.0"
|
||||||
thenby "^1.3.4"
|
thenby "^1.3.4"
|
||||||
|
|
||||||
|
postcss-selector-parser@6.0.10:
|
||||||
|
version "6.0.10"
|
||||||
|
resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz"
|
||||||
|
integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==
|
||||||
|
dependencies:
|
||||||
|
cssesc "^3.0.0"
|
||||||
|
util-deprecate "^1.0.2"
|
||||||
|
|
||||||
postcss-value-parser@^4.2.0:
|
postcss-value-parser@^4.2.0:
|
||||||
version "4.2.0"
|
version "4.2.0"
|
||||||
resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
|
resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
|
||||||
@ -782,6 +956,15 @@ require-directory@^2.1.1:
|
|||||||
resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
|
resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
|
||||||
integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
|
integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
|
||||||
|
|
||||||
|
resolve@^1.22.1:
|
||||||
|
version "1.22.10"
|
||||||
|
resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz"
|
||||||
|
integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==
|
||||||
|
dependencies:
|
||||||
|
is-core-module "^2.16.0"
|
||||||
|
path-parse "^1.0.7"
|
||||||
|
supports-preserve-symlinks-flag "^1.0.0"
|
||||||
|
|
||||||
reusify@^1.0.4:
|
reusify@^1.0.4:
|
||||||
version "1.0.4"
|
version "1.0.4"
|
||||||
resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
|
resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
|
||||||
@ -850,6 +1033,11 @@ supports-color@^5.5.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
has-flag "^3.0.0"
|
has-flag "^3.0.0"
|
||||||
|
|
||||||
|
supports-preserve-symlinks-flag@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
|
||||||
|
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
|
||||||
|
|
||||||
thenby@^1.3.4:
|
thenby@^1.3.4:
|
||||||
version "1.3.4"
|
version "1.3.4"
|
||||||
resolved "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz"
|
resolved "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz"
|
||||||
@ -890,6 +1078,11 @@ update-browserslist-db@^1.1.1:
|
|||||||
escalade "^3.2.0"
|
escalade "^3.2.0"
|
||||||
picocolors "^1.1.0"
|
picocolors "^1.1.0"
|
||||||
|
|
||||||
|
util-deprecate@^1.0.2:
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
|
||||||
|
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
|
||||||
|
|
||||||
wrap-ansi@^7.0.0:
|
wrap-ansi@^7.0.0:
|
||||||
version "7.0.0"
|
version "7.0.0"
|
||||||
resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
|
resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
|
||||||
|
Loading…
Reference in New Issue
Block a user