add basic rendering for option types

This commit is contained in:
Floatingghost 2024-05-11 05:25:29 +01:00
parent 0361f9c3a5
commit 941fd0f064
5 changed files with 108 additions and 485 deletions

View file

@ -2525,6 +2525,7 @@
group: :pleroma,
key: :emoji,
type: :group,
description: "Configuration options related to emoji",
children: [
%{
key: :shortcode_globs,
@ -2561,7 +2562,7 @@
key: :shared_pack_cache_seconds_per_file,
label: "Shared pack cache s/file",
type: :integer,
descpiption:
description:
"When an emoji pack is shared, the archive is created and cached in memory" <>
" for this amount of seconds multiplied by the number of files.",
suggestions: [60]

View file

@ -1,7 +1,7 @@
defmodule Pleroma.Web.AdminControl.AdminControlController do
use Pleroma.Web, :controller
@descriptions Pleroma.Docs.JSON.compiled_descriptions()
plug(:put_root_layout, {Pleroma.Web.AdminControl.AdminControlView, :layout})
plug(:put_layout, false)
@ -9,8 +9,9 @@ defmodule Pleroma.Web.AdminControl.AdminControlController do
defp label_for(%{label: label}), do: label
defp label_for(_), do: "Unknown"
defp descriptions, do: Pleroma.Docs.JSON.compiled_descriptions()
def config_headings do
@descriptions
descriptions()
|> Enum.map(&label_for(&1))
|> Enum.sort()
end
@ -19,7 +20,7 @@ def config_values(%{"heading" => heading}) do
IO.inspect(heading)
possible_values =
@descriptions
descriptions()
|> Enum.filter(fn section -> label_for(section) == heading end)
possible_values

View file

@ -1,5 +1,6 @@
defmodule Pleroma.Web.AdminControl.AdminControlView do
use Pleroma.Web, :html
require Logger
embed_templates "admin_control_html/*"
@ -29,33 +30,65 @@ def config_value(%{config_value: %{type: :group} = value} = assigns) do
"""
end
def config_value(%{config_value: %{type: :integer} = value} = assigns) do
def config_value(%{config_value: %{type: :integer, key: key} = value} = assigns) do
value = value_of(assigns)
assigns = assign(assigns, value: value)
assigns = assign(assigns, value: value, key: key)
~H"""
<div class="config-group">
<h3 class="config-group-title"><%= @config_value.label %></h3>
<p class="ml-2"><%= @config_value.description %></p>
<input type="number" value={@value} class="form-input text-black rounded" />
<div>
<label for={@key} class="block text-sm font-medium leading-6 text-white"><%= @config_value.label %></label>
<div class="mt-2">
<input type="number" name={@key} id={@key} value={@value} class="block w-full rounded-md border-0 bg-white/5 py-1.5 text-white shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring-indigo-500 sm:text-sm sm:leading-6">
</div>
<p class="mt-2 text-sm text-gray-500"><%= @config_value.description %></p>
</div>
"""
end
def config_value(%{config_value: %{type: :boolean} = value} = assigns) do
def config_value(%{config_value: %{type: :string, key: key} = value} = assigns) do
value = value_of(assigns)
assigns = assign(assigns, value: value, key: key)
~H"""
<div>
<label for={@key} class="block text-sm font-medium leading-6 text-white"><%= @config_value.label %></label>
<div class="mt-2">
<input type="text" name={@key} id={@key} value={@value} class="block w-full rounded-md border-0 bg-white/5 py-1.5 text-white shadow-sm ring-1 ring-inset ring-white/10 focus:ring-2 focus:ring-inset focus:ring-indigo-500 sm:text-sm sm:leading-6">
</div>
<p class="mt-2 text-sm text-gray-500"><%= @config_value.description %></p>
</div>
"""
end
def config_value(%{config_value: %{type: :boolean, key: key} = value} = assigns) do
value = value_of(assigns) == "true"
assigns = assign(assigns, value: value, key: key)
~H"""
<div>
<label for={@key} class="block text-sm font-medium leading-6 text-white"><%= @config_value.label %></label>
<div class="mt-2">
<p class="mt-2 text-sm text-gray-500"><input type="checkbox" name={@key} id={@key} checked={@value} class="rounded-md px-2"> <%= @config_value.description %></p>
</div>
</div>
"""
end
def config_value(%{config_value: %{type: {:list, :string}} = value} = assigns) do
value = value_of(assigns)
assigns = assign(assigns, value: value)
~H"""
<div class="config-group">
<h3 class="config-group-title"><%= @config_value.label %></h3>
<span class="ml-2"><%= @config_value.description %></span>
<input type="checkbox" checked={@value} class="form-input" />
<%= @value %>
</div>
"""
end
def config_value(assigns) do
Logger.info("Cannot render config!")
IO.inspect(assigns)
~H"""
Cannot render

View file

@ -1,269 +1,6 @@
<div>
<!-- Off-canvas menu for mobile, show/hide based on off-canvas menu state. -->
<div class="relative z-50 xl:hidden" role="dialog" aria-modal="true">
<!--
Off-canvas menu backdrop, show/hide based on off-canvas menu state.
Entering: "transition-opacity ease-linear duration-300"
From: "opacity-0"
To: "opacity-100"
Leaving: "transition-opacity ease-linear duration-300"
From: "opacity-100"
To: "opacity-0"
-->
<div class="fixed inset-0 bg-gray-900/80"></div>
<div class="fixed inset-0 flex">
<!--
Off-canvas menu, show/hide based on off-canvas menu state.
Entering: "transition ease-in-out duration-300 transform"
From: "-translate-x-full"
To: "translate-x-0"
Leaving: "transition ease-in-out duration-300 transform"
From: "translate-x-0"
To: "-translate-x-full"
-->
<div class="relative mr-16 flex w-full max-w-xs flex-1">
<!--
Close button, show/hide based on off-canvas menu state.
Entering: "ease-in-out duration-300"
From: "opacity-0"
To: "opacity-100"
Leaving: "ease-in-out duration-300"
From: "opacity-100"
To: "opacity-0"
-->
<div class="absolute left-full top-0 flex w-16 justify-center pt-5">
<button type="button" class="-m-2.5 p-2.5">
<span class="sr-only">Close sidebar</span>
<svg
class="h-6 w-6 text-white"
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
aria-hidden="true"
>
<path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" />
</svg>
</button>
</div>
<!-- Sidebar component, swap this element with another sidebar if you like -->
<div class="flex grow flex-col gap-y-5 overflow-y-auto bg-gray-900 px-6 ring-1 ring-white/10">
<div class="flex h-16 shrink-0 items-center">
<img
class="h-8 w-auto"
src="https://tailwindui.com/img/logos/mark.svg?color=indigo&shade=500"
alt="Your Company"
/>
</div>
<nav class="flex flex-1 flex-col">
<ul role="list" class="flex flex-1 flex-col gap-y-7">
<li>
<ul role="list" class="-mx-2 space-y-1">
<li>
<!-- Current: "bg-gray-800 text-white", Default: "text-gray-400 hover:text-white hover:bg-gray-800" -->
<a
href="#"
class="text-gray-400 hover:text-white hover:bg-gray-800 group flex gap-x-3 rounded-md p-2 text-sm leading-6 font-semibold"
>
<svg
class="h-6 w-6 shrink-0"
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
aria-hidden="true"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M2.25 12.75V12A2.25 2.25 0 014.5 9.75h15A2.25 2.25 0 0121.75 12v.75m-8.69-6.44l-2.12-2.12a1.5 1.5 0 00-1.061-.44H4.5A2.25 2.25 0 002.25 6v12a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9a2.25 2.25 0 00-2.25-2.25h-5.379a1.5 1.5 0 01-1.06-.44z"
/>
</svg>
Projects
</a>
</li>
<li>
<a
href="#"
class="bg-gray-800 text-white group flex gap-x-3 rounded-md p-2 text-sm leading-6 font-semibold"
>
<svg
class="h-6 w-6 shrink-0"
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
aria-hidden="true"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M21.75 17.25v-.228a4.5 4.5 0 00-.12-1.03l-2.268-9.64a3.375 3.375 0 00-3.285-2.602H7.923a3.375 3.375 0 00-3.285 2.602l-2.268 9.64a4.5 4.5 0 00-.12 1.03v.228m19.5 0a3 3 0 01-3 3H5.25a3 3 0 01-3-3m19.5 0a3 3 0 00-3-3H5.25a3 3 0 00-3 3m16.5 0h.008v.008h-.008v-.008zm-3 0h.008v.008h-.008v-.008z"
/>
</svg>
Deployments
</a>
</li>
<li>
<a
href="#"
class="text-gray-400 hover:text-white hover:bg-gray-800 group flex gap-x-3 rounded-md p-2 text-sm leading-6 font-semibold"
>
<svg
class="h-6 w-6 shrink-0"
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
aria-hidden="true"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M9.348 14.651a3.75 3.75 0 010-5.303m5.304 0a3.75 3.75 0 010 5.303m-7.425 2.122a6.75 6.75 0 010-9.546m9.546 0a6.75 6.75 0 010 9.546M5.106 18.894c-3.808-3.808-3.808-9.98 0-13.789m13.788 0c3.808 3.808 3.808 9.981 0 13.79M12 12h.008v.007H12V12zm.375 0a.375.375 0 11-.75 0 .375.375 0 01.75 0z"
/>
</svg>
Activity
</a>
</li>
<li>
<a
href="#"
class="text-gray-400 hover:text-white hover:bg-gray-800 group flex gap-x-3 rounded-md p-2 text-sm leading-6 font-semibold"
>
<svg
class="h-6 w-6 shrink-0"
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
aria-hidden="true"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M12 21a9.004 9.004 0 008.716-6.747M12 21a9.004 9.004 0 01-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 017.843 4.582M12 3a8.997 8.997 0 00-7.843 4.582m15.686 0A11.953 11.953 0 0112 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0121 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0112 16.5c-3.162 0-6.133-.815-8.716-2.247m0 0A9.015 9.015 0 013 12c0-1.605.42-3.113 1.157-4.418"
/>
</svg>
Domains
</a>
</li>
<li>
<a
href="#"
class="text-gray-400 hover:text-white hover:bg-gray-800 group flex gap-x-3 rounded-md p-2 text-sm leading-6 font-semibold"
>
<svg
class="h-6 w-6 shrink-0"
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
aria-hidden="true"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M7.5 14.25v2.25m3-4.5v4.5m3-6.75v6.75m3-9v9M6 20.25h12A2.25 2.25 0 0020.25 18V6A2.25 2.25 0 0018 3.75H6A2.25 2.25 0 003.75 6v12A2.25 2.25 0 006 20.25z"
/>
</svg>
Usage
</a>
</li>
<li>
<a
href="#"
class="text-gray-400 hover:text-white hover:bg-gray-800 group flex gap-x-3 rounded-md p-2 text-sm leading-6 font-semibold"
>
<svg
class="h-6 w-6 shrink-0"
fill="none"
viewBox="0 0 24 24"
stroke-width="1.5"
stroke="currentColor"
aria-hidden="true"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.324.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 011.37.49l1.296 2.247a1.125 1.125 0 01-.26 1.431l-1.003.827c-.293.24-.438.613-.431.992a6.759 6.759 0 010 .255c-.007.378.138.75.43.99l1.005.828c.424.35.534.954.26 1.43l-1.298 2.247a1.125 1.125 0 01-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.57 6.57 0 01-.22.128c-.331.183-.581.495-.644.869l-.213 1.28c-.09.543-.56.941-1.11.941h-2.594c-.55 0-1.02-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 01-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 01-1.369-.49l-1.297-2.247a1.125 1.125 0 01.26-1.431l1.004-.827c.292-.24.437-.613.43-.992a6.932 6.932 0 010-.255c.007-.378-.138-.75-.43-.99l-1.004-.828a1.125 1.125 0 01-.26-1.43l1.297-2.247a1.125 1.125 0 011.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.087.22-.128.332-.183.582-.495.644-.869l.214-1.281z"
/>
<path
stroke-linecap="round"
stroke-linejoin="round"
d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"
/>
</svg>
Settings
</a>
</li>
</ul>
</li>
<li>
<div class="text-xs font-semibold leading-6 text-gray-400">Your teams</div>
<ul role="list" class="-mx-2 mt-2 space-y-1">
<li>
<!-- Current: "bg-gray-800 text-white", Default: "text-gray-400 hover:text-white hover:bg-gray-800" -->
<a
href="#"
class="text-gray-400 hover:text-white hover:bg-gray-800 group flex gap-x-3 rounded-md p-2 text-sm leading-6 font-semibold"
>
<span class="flex h-6 w-6 shrink-0 items-center justify-center rounded-lg border border-gray-700 bg-gray-800 text-[0.625rem] font-medium text-gray-400 group-hover:text-white">
P
</span>
<span class="truncate">Planetaria</span>
</a>
</li>
<li>
<a
href="#"
class="text-gray-400 hover:text-white hover:bg-gray-800 group flex gap-x-3 rounded-md p-2 text-sm leading-6 font-semibold"
>
<span class="flex h-6 w-6 shrink-0 items-center justify-center rounded-lg border border-gray-700 bg-gray-800 text-[0.625rem] font-medium text-gray-400 group-hover:text-white">
P
</span>
<span class="truncate">Protocol</span>
</a>
</li>
<li>
<a
href="#"
class="text-gray-400 hover:text-white hover:bg-gray-800 group flex gap-x-3 rounded-md p-2 text-sm leading-6 font-semibold"
>
<span class="flex h-6 w-6 shrink-0 items-center justify-center rounded-lg border border-gray-700 bg-gray-800 text-[0.625rem] font-medium text-gray-400 group-hover:text-white">
T
</span>
<span class="truncate">Tailwind Labs</span>
</a>
</li>
</ul>
</li>
<li class="-mx-6 mt-auto">
<a
href="#"
class="flex items-center gap-x-4 px-6 py-3 text-sm font-semibold leading-6 text-white hover:bg-gray-800"
>
<img
class="h-8 w-8 rounded-full bg-gray-800"
src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
alt=""
/>
<span class="sr-only">Your profile</span>
<span aria-hidden="true">Tom Cook</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
<!-- Static sidebar for desktop -->
<div class="hidden xl:fixed xl:inset-y-0 xl:z-50 xl:flex xl:w-72 xl:flex-col">
<div class="fixed inset-y-0 z-50 flex w-72 flex-col">
<!-- Sidebar component, swap this element with another sidebar if you like -->
<div class="flex grow flex-col gap-y-5 overflow-y-auto bg-black/10 px-6 ring-1 ring-white/5">
<div class="flex h-16 shrink-0 items-center text-white">
@ -279,8 +16,8 @@
</div>
</div>
<div class="xl:pl-72">
<main class="lg:pr-96">
<div class="pl-72">
<main>
<header class="flex items-center justify-between border-b border-white/5 px-4 py-4 sm:px-6 sm:py-6 lg:px-8">
<h1 class="text-base font-semibold leading-7 text-white">Things</h1>
</header>

View file

@ -744,59 +744,6 @@ @media (min-width: 1536px) {
}
}
.form-input,.form-textarea,.form-select,.form-multiselect {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
background-color: #fff;
border-color: #6b7280;
border-width: 1px;
border-radius: 0px;
padding-top: 0.5rem;
padding-right: 0.75rem;
padding-bottom: 0.5rem;
padding-left: 0.75rem;
font-size: 1rem;
line-height: 1.5rem;
--tw-shadow: 0 0 #0000;
}
.form-input:focus, .form-textarea:focus, .form-select:focus, .form-multiselect:focus {
outline: 2px solid transparent;
outline-offset: 2px;
--tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
--tw-ring-offset-width: 0px;
--tw-ring-offset-color: #fff;
--tw-ring-color: #2563eb;
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
border-color: #2563eb;
}
.form-input::-moz-placeholder, .form-textarea::-moz-placeholder {
color: #6b7280;
opacity: 1;
}
.form-input::placeholder,.form-textarea::placeholder {
color: #6b7280;
opacity: 1;
}
.form-input::-webkit-datetime-edit-fields-wrapper {
padding: 0;
}
.form-input::-webkit-date-and-time-value {
min-height: 1.5em;
}
.form-input::-webkit-datetime-edit,.form-input::-webkit-datetime-edit-year-field,.form-input::-webkit-datetime-edit-month-field,.form-input::-webkit-datetime-edit-day-field,.form-input::-webkit-datetime-edit-hour-field,.form-input::-webkit-datetime-edit-minute-field,.form-input::-webkit-datetime-edit-second-field,.form-input::-webkit-datetime-edit-millisecond-field,.form-input::-webkit-datetime-edit-meridiem-field {
padding-top: 0;
padding-bottom: 0;
}
.hero-arrow-left-solid {
--hero-arrow-left-solid: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon"> <path fill-rule="evenodd" d="M11.03 3.97a.75.75 0 0 1 0 1.06l-6.22 6.22H21a.75.75 0 0 1 0 1.5H4.81l6.22 6.22a.75.75 0 1 1-1.06 1.06l-7.5-7.5a.75.75 0 0 1 0-1.06l7.5-7.5a.75.75 0 0 1 1.06 0Z" clip-rule="evenodd"/></svg>');
-webkit-mask: var(--hero-arrow-left-solid);
@ -911,6 +858,11 @@ .inset-0 {
bottom: -1px;
}
.inset-y-0 {
top: 0px;
bottom: 0px;
}
.-left-4 {
left: -1rem;
}
@ -923,10 +875,6 @@ .left-0 {
left: 0px;
}
.left-full {
left: 100%;
}
.right-0 {
right: 0px;
}
@ -943,10 +891,6 @@ .right-5 {
right: 1.25rem;
}
.top-0 {
top: 0px;
}
.top-1 {
top: 0.25rem;
}
@ -963,14 +907,6 @@ .z-50 {
z-index: 50;
}
.-m-2 {
margin: -0.5rem;
}
.-m-2\.5 {
margin: -0.625rem;
}
.-m-3 {
margin: -0.75rem;
}
@ -980,11 +916,6 @@ .z-50 {
margin-right: -0.5rem;
}
.-mx-6 {
margin-left: -1.5rem;
margin-right: -1.5rem;
}
.-my-4 {
margin-top: -1rem;
margin-bottom: -1rem;
@ -1006,10 +937,6 @@ .ml-4 {
margin-left: 1rem;
}
.mr-16 {
margin-right: 4rem;
}
.mr-2 {
margin-right: 0.5rem;
}
@ -1046,10 +973,6 @@ .mt-3 {
margin-top: 0.75rem;
}
.mt-auto {
margin-top: auto;
}
.block {
display: block;
}
@ -1098,10 +1021,6 @@ .h-6 {
height: 1.5rem;
}
.h-8 {
height: 2rem;
}
.h-full {
height: 100%;
}
@ -1122,10 +1041,6 @@ .w-14 {
width: 3.5rem;
}
.w-16 {
width: 4rem;
}
.w-3 {
width: 0.75rem;
}
@ -1142,8 +1057,8 @@ .w-6 {
width: 1.5rem;
}
.w-8 {
width: 2rem;
.w-72 {
width: 18rem;
}
.w-80 {
@ -1154,10 +1069,6 @@ .w-\[40rem\] {
width: 40rem;
}
.w-auto {
width: auto;
}
.w-full {
width: 100%;
}
@ -1166,10 +1077,6 @@ .max-w-3xl {
max-width: 48rem;
}
.max-w-xs {
max-width: 20rem;
}
.flex-1 {
flex: 1 1 0%;
}
@ -1190,16 +1097,6 @@ .border-collapse {
border-collapse: collapse;
}
.-translate-x-full {
--tw-translate-x: -100%;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-0 {
--tw-translate-x: 0px;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-0 {
--tw-translate-y: 0px;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
@ -1269,11 +1166,6 @@ .gap-x-3 {
column-gap: 0.75rem;
}
.gap-x-4 {
-moz-column-gap: 1rem;
column-gap: 1rem;
}
.gap-y-5 {
row-gap: 1.25rem;
}
@ -1331,10 +1223,6 @@ .rounded-2xl {
border-radius: 1rem;
}
.rounded-full {
border-radius: 9999px;
}
.rounded-lg {
border-radius: 0.5rem;
}
@ -1347,6 +1235,10 @@ .border {
border-width: 1px;
}
.border-0 {
border-width: 0px;
}
.border-b {
border-bottom-width: 1px;
}
@ -1360,11 +1252,6 @@ .border-gray-300 {
border-color: rgb(209 213 219 / var(--tw-border-opacity));
}
.border-gray-700 {
--tw-border-opacity: 1;
border-color: rgb(55 65 81 / var(--tw-border-opacity));
}
.border-rose-400 {
--tw-border-opacity: 1;
border-color: rgb(251 113 133 / var(--tw-border-opacity));
@ -1403,10 +1290,6 @@ .bg-gray-900 {
background-color: rgb(17 24 39 / var(--tw-bg-opacity));
}
.bg-gray-900\/80 {
background-color: rgb(17 24 39 / 0.8);
}
.bg-rose-50 {
--tw-bg-opacity: 1;
background-color: rgb(255 241 242 / var(--tw-bg-opacity));
@ -1417,6 +1300,10 @@ .bg-white {
background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}
.bg-white\/5 {
background-color: rgb(255 255 255 / 0.05);
}
.bg-zinc-50\/90 {
background-color: rgb(250 250 250 / 0.9);
}
@ -1446,10 +1333,6 @@ .p-2 {
padding: 0.5rem;
}
.p-2\.5 {
padding: 0.625rem;
}
.p-3 {
padding: 0.75rem;
}
@ -1458,6 +1341,11 @@ .p-4 {
padding: 1rem;
}
.px-2 {
padding-left: 0.5rem;
padding-right: 0.5rem;
}
.px-3 {
padding-left: 0.75rem;
padding-right: 0.75rem;
@ -1473,16 +1361,21 @@ .px-6 {
padding-right: 1.5rem;
}
.py-1 {
padding-top: 0.25rem;
padding-bottom: 0.25rem;
}
.py-1\.5 {
padding-top: 0.375rem;
padding-bottom: 0.375rem;
}
.py-2 {
padding-top: 0.5rem;
padding-bottom: 0.5rem;
}
.py-3 {
padding-top: 0.75rem;
padding-bottom: 0.75rem;
}
.py-4 {
padding-top: 1rem;
padding-bottom: 1rem;
@ -1492,12 +1385,12 @@ .pb-4 {
padding-bottom: 1rem;
}
.pr-6 {
padding-right: 1.5rem;
.pl-72 {
padding-left: 18rem;
}
.pt-5 {
padding-top: 1.25rem;
.pr-6 {
padding-right: 1.5rem;
}
.text-left {
@ -1513,10 +1406,6 @@ .text-2xl {
line-height: 2rem;
}
.text-\[0\.625rem\] {
font-size: 0.625rem;
}
.text-base {
font-size: 1rem;
line-height: 1.5rem;
@ -1532,11 +1421,6 @@ .text-sm {
line-height: 1.25rem;
}
.text-xs {
font-size: 0.75rem;
line-height: 1rem;
}
.font-medium {
font-weight: 500;
}
@ -1569,11 +1453,6 @@ .leading-8 {
line-height: 2rem;
}
.text-black {
--tw-text-opacity: 1;
color: rgb(0 0 0 / var(--tw-text-opacity));
}
.text-emerald-800 {
--tw-text-opacity: 1;
color: rgb(6 95 70 / var(--tw-text-opacity));
@ -1584,6 +1463,11 @@ .text-gray-400 {
color: rgb(156 163 175 / var(--tw-text-opacity));
}
.text-gray-500 {
--tw-text-opacity: 1;
color: rgb(107 114 128 / var(--tw-text-opacity));
}
.text-rose-600 {
--tw-text-opacity: 1;
color: rgb(225 29 72 / var(--tw-text-opacity));
@ -1678,6 +1562,10 @@ .ring-1 {
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-inset {
--tw-ring-inset: inset;
}
.ring-emerald-500 {
--tw-ring-opacity: 1;
--tw-ring-color: rgb(16 185 129 / var(--tw-ring-opacity));
@ -1736,14 +1624,6 @@ .ease-in {
transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
}
.ease-in-out {
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.ease-linear {
transition-timing-function: linear;
}
.ease-out {
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
@ -1803,6 +1683,21 @@ .focus\:ring-0:focus {
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus\:ring-2:focus {
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus\:ring-inset:focus {
--tw-ring-inset: inset;
}
.focus\:ring-indigo-500:focus {
--tw-ring-opacity: 1;
--tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity));
}
.active\:text-white\/80:active {
color: rgb(255 255 255 / 0.8);
}
@ -1812,11 +1707,6 @@ .group:hover .group-hover\:bg-zinc-50 {
background-color: rgb(250 250 250 / var(--tw-bg-opacity));
}
.group:hover .group-hover\:text-white {
--tw-text-opacity: 1;
color: rgb(255 255 255 / var(--tw-text-opacity));
}
.group:hover .group-hover\:opacity-70 {
opacity: 0.7;
}
@ -1940,43 +1830,4 @@ @media (min-width: 1024px) {
padding-top: 2rem;
padding-bottom: 2rem;
}
.lg\:pr-96 {
padding-right: 24rem;
}
}
@media (min-width: 1280px) {
.xl\:fixed {
position: fixed;
}
.xl\:inset-y-0 {
top: 0px;
bottom: 0px;
}
.xl\:z-50 {
z-index: 50;
}
.xl\:flex {
display: flex;
}
.xl\:hidden {
display: none;
}
.xl\:w-72 {
width: 18rem;
}
.xl\:flex-col {
flex-direction: column;
}
.xl\:pl-72 {
padding-left: 18rem;
}
}