footer
parent
59ef202862
commit
e3b3b83ca0
|
|
@ -36,5 +36,6 @@ def load_config(request):
|
||||||
'memberships': Membership.objects.filter(published=True),
|
'memberships': Membership.objects.filter(published=True),
|
||||||
'youth': Youth.objects.filter(published=True),
|
'youth': Youth.objects.filter(published=True),
|
||||||
'mbkb': MBKB.objects.filter(published=True),
|
'mbkb': MBKB.objects.filter(published=True),
|
||||||
'atus': Atu.objects.filter(published=True)
|
'atus': Atu.objects.filter(published=True),
|
||||||
|
'footer': Footer.Get()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -87,8 +87,15 @@
|
||||||
>
|
>
|
||||||
{% block content %}{% endblock %}
|
{% block content %}{% endblock %}
|
||||||
</main>
|
</main>
|
||||||
<footer class="footer text-center font-light italic">
|
{% if footer %}
|
||||||
<h6 class="mb-4">© {% now "Y" %} Nikola Kubiczek</h6>
|
<footer class="shadow-lg border-t border-slate-400 bg-white mt-8">
|
||||||
|
<ul class="lg:m-0 prose max-w-full w-full">
|
||||||
|
{% content footer %}
|
||||||
|
<div class="flex flex-wrap gap-4 justify-center items-center mb-4">
|
||||||
|
{% buttons footer.buttons %}
|
||||||
|
</div>
|
||||||
|
</ul>
|
||||||
</footer>
|
</footer>
|
||||||
|
{% endif %}
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -20,3 +20,10 @@ class GrandPrixWAdmin(OrderableAdmin, admin.ModelAdmin):
|
||||||
ordering_field_hide_input = True
|
ordering_field_hide_input = True
|
||||||
exclude = ['ordering']
|
exclude = ['ordering']
|
||||||
|
|
||||||
|
|
||||||
|
@admin.register(Footer)
|
||||||
|
class FooterAdmin(OrderableAdmin, admin.ModelAdmin):
|
||||||
|
list_display = ('__str__', 'published', 'ordering')
|
||||||
|
list_editable = ['ordering']
|
||||||
|
ordering_field_hide_input = True
|
||||||
|
exclude = ['ordering']
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
# Generated by Django 5.0.1 on 2024-01-04 00:39
|
||||||
|
|
||||||
|
import tinymce.models
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('main', '0011_rename_year_grandprixw_id_alter_grandprixw_published_and_more'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Footer',
|
||||||
|
fields=[
|
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('ordering', models.IntegerField(default=0, verbose_name='Kolejność')),
|
||||||
|
('published', models.BooleanField(default=False, verbose_name='Wpis opublikowany')),
|
||||||
|
('show_title', models.BooleanField(default=True, verbose_name='Pokaż tytuł')),
|
||||||
|
('title', models.CharField(blank=True, default='', max_length=250, verbose_name='Tytuł')),
|
||||||
|
('content', tinymce.models.HTMLField(blank=True, default='', verbose_name='Treść')),
|
||||||
|
('buttons', models.TextField(blank=True, default='', help_text='Tutaj można wpisać dowolną ilość przycisków w następującym formacie:<br /> <code><br /> tekst1 -> link<br /> teskt2 | link<br /> ...<br /> </code><br /> Symbol <code>-></code> oznacza, że link będzie otwarty w nowej karcie<br /> Symbol <code>|</code> oznacza, że link będzie otwarty w tej samej karcie<br /> Na przykład:<br /> <code><br /> pzbs -> https://pzbs.pl<br /> fotogaleria | https://galeria.podlaskizbs.pl<br /> cezar -> https://www.msc.com.pl/cezar<br /> </code><br /> PZBS i Cezar zostaną otwarte w nowej karcie<br /> <b>UWAGA !!</b><br /> Gdy nie podamy tekstu przyciku, nie pokaże on się, można to wykorzystać w taki sposób:<br /> <code><br /> -> link do wyników<br /> fotogaleria -> link do fotogalerii<br /> </code><br /> Wtedy pokaże się <b>tylko przycisk fotogalerii</b><br /> ', verbose_name='Przyciski')),
|
||||||
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name': 'Stopka',
|
||||||
|
'verbose_name_plural': 'Stopki',
|
||||||
|
'ordering': ['ordering'],
|
||||||
|
'abstract': False,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
from django.db import models
|
from django.db import models, transaction
|
||||||
from django.urls.base import reverse_lazy
|
from django.urls.base import reverse_lazy
|
||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
from tinymce.models import HTMLField
|
from tinymce.models import HTMLField
|
||||||
|
|
@ -55,3 +55,53 @@ class GrandPrixW(OrderableModel):
|
||||||
class Meta(OrderableModel.Meta):
|
class Meta(OrderableModel.Meta):
|
||||||
verbose_name = 'Grand Prix Województwa'
|
verbose_name = 'Grand Prix Województwa'
|
||||||
verbose_name_plural = 'Grand Prix Województwa'
|
verbose_name_plural = 'Grand Prix Województwa'
|
||||||
|
|
||||||
|
class PublishableModel(models.Model):
|
||||||
|
published = models.BooleanField("Wpis opublikowany", default=False)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def Published(cls):
|
||||||
|
return cls.objects.filter(published=True)
|
||||||
|
|
||||||
|
class Meta():
|
||||||
|
abstract = True
|
||||||
|
|
||||||
|
|
||||||
|
class SingletonModel(PublishableModel):
|
||||||
|
class Meta:
|
||||||
|
abstract = True
|
||||||
|
|
||||||
|
def save(self, *args, **kwargs):
|
||||||
|
if not self.published:
|
||||||
|
return super().save(*args, **kwargs)
|
||||||
|
with transaction.atomic():
|
||||||
|
self.__class__.objects.filter(published=True).update(published=False)
|
||||||
|
return super().save(*args, **kwargs)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def Get(cls):
|
||||||
|
return cls.objects.filter(published=True).first()
|
||||||
|
|
||||||
|
|
||||||
|
class PostableModel(PublishableModel, OrderableModel):
|
||||||
|
reverse_href = ""
|
||||||
|
show_title = models.BooleanField("Pokaż tytuł", default=True)
|
||||||
|
title = models.CharField("Tytuł", default="", blank=True, max_length=250)
|
||||||
|
content = HTMLField("Treść", default="", blank=True)
|
||||||
|
buttons = models.TextField(
|
||||||
|
"Przyciski", default="", blank=True, help_text=buttons_help_text
|
||||||
|
)
|
||||||
|
created_at = models.DateTimeField(auto_now_add=True)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.title or "(brak tytułu)"
|
||||||
|
|
||||||
|
class Meta(OrderableModel.Meta):
|
||||||
|
abstract = True
|
||||||
|
|
||||||
|
class Footer(PostableModel, SingletonModel):
|
||||||
|
|
||||||
|
class Meta(OrderableModel.Meta):
|
||||||
|
verbose_name = "Stopka"
|
||||||
|
verbose_name_plural = "Stopki"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,59 +2,88 @@
|
||||||
DJANGO Admin styles
|
DJANGO Admin styles
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@import url(fonts.css);
|
|
||||||
|
|
||||||
/* VARIABLE DEFINITIONS */
|
/* VARIABLE DEFINITIONS */
|
||||||
|
html[data-theme="light"],
|
||||||
:root {
|
:root {
|
||||||
--primary: #79aec8;
|
--primary: #79aec8;
|
||||||
--secondary: #417690;
|
--secondary: #417690;
|
||||||
--accent: #f5dd5d;
|
--accent: #f5dd5d;
|
||||||
--primary-fg: #fff;
|
--primary-fg: #fff;
|
||||||
|
|
||||||
--body-fg: #333;
|
--body-fg: #333;
|
||||||
--body-bg: #fff;
|
--body-bg: #fff;
|
||||||
--body-quiet-color: #666;
|
--body-quiet-color: #666;
|
||||||
--body-loud-color: #000;
|
--body-loud-color: #000;
|
||||||
|
|
||||||
--header-color: #ffc;
|
--header-color: #ffc;
|
||||||
--header-branding-color: var(--accent);
|
--header-branding-color: var(--accent);
|
||||||
--header-bg: var(--secondary);
|
--header-bg: var(--secondary);
|
||||||
--header-link-color: var(--primary-fg);
|
--header-link-color: var(--primary-fg);
|
||||||
|
|
||||||
--breadcrumbs-fg: #c4dce8;
|
--breadcrumbs-fg: #c4dce8;
|
||||||
--breadcrumbs-link-fg: var(--body-bg);
|
--breadcrumbs-link-fg: var(--body-bg);
|
||||||
--breadcrumbs-bg: var(--primary);
|
--breadcrumbs-bg: #264b5d;
|
||||||
|
|
||||||
--link-fg: #447e9b;
|
--link-fg: #417893;
|
||||||
--link-hover-color: #036;
|
--link-hover-color: #036;
|
||||||
--link-selected-fg: #5b80b2;
|
--link-selected-fg: var(--secondary);
|
||||||
|
|
||||||
--hairline-color: #e8e8e8;
|
--hairline-color: #e8e8e8;
|
||||||
--border-color: #ccc;
|
--border-color: #ccc;
|
||||||
|
|
||||||
--error-fg: #ba2121;
|
--error-fg: #ba2121;
|
||||||
|
|
||||||
--message-success-bg: #dfd;
|
--message-success-bg: #dfd;
|
||||||
--message-warning-bg: #ffc;
|
--message-warning-bg: #ffc;
|
||||||
--message-error-bg: #ffefef;
|
--message-error-bg: #ffefef;
|
||||||
|
|
||||||
--darkened-bg: #f8f8f8; /* A bit darker than --body-bg */
|
--darkened-bg: #f8f8f8; /* A bit darker than --body-bg */
|
||||||
--selected-bg: #e4e4e4; /* E.g. selected table cells */
|
--selected-bg: #e4e4e4; /* E.g. selected table cells */
|
||||||
--selected-row: #ffc;
|
--selected-row: #ffc;
|
||||||
|
|
||||||
--button-fg: #fff;
|
--button-fg: #fff;
|
||||||
--button-bg: var(--primary);
|
--button-bg: var(--secondary);
|
||||||
--button-hover-bg: #609ab6;
|
--button-hover-bg: #205067;
|
||||||
--default-button-bg: var(--secondary);
|
--default-button-bg: #205067;
|
||||||
--default-button-hover-bg: #205067;
|
--default-button-hover-bg: var(--secondary);
|
||||||
--close-button-bg: #888; /* Previously #bbb, contrast 1.92 */
|
--close-button-bg: #747474;
|
||||||
--close-button-hover-bg: #747474;
|
--close-button-hover-bg: #333;
|
||||||
--delete-button-bg: #ba2121;
|
--delete-button-bg: #ba2121;
|
||||||
--delete-button-hover-bg: #a41515;
|
--delete-button-hover-bg: #a41515;
|
||||||
|
|
||||||
--object-tools-fg: var(--button-fg);
|
--object-tools-fg: var(--button-fg);
|
||||||
--object-tools-bg: var(--close-button-bg);
|
--object-tools-bg: var(--close-button-bg);
|
||||||
--object-tools-hover-bg: var(--close-button-hover-bg);
|
--object-tools-hover-bg: var(--close-button-hover-bg);
|
||||||
|
|
||||||
|
--font-family-primary:
|
||||||
|
"Segoe UI",
|
||||||
|
system-ui,
|
||||||
|
Roboto,
|
||||||
|
"Helvetica Neue",
|
||||||
|
Arial,
|
||||||
|
sans-serif,
|
||||||
|
"Apple Color Emoji",
|
||||||
|
"Segoe UI Emoji",
|
||||||
|
"Segoe UI Symbol",
|
||||||
|
"Noto Color Emoji";
|
||||||
|
--font-family-monospace:
|
||||||
|
ui-monospace,
|
||||||
|
Menlo,
|
||||||
|
Monaco,
|
||||||
|
"Cascadia Mono",
|
||||||
|
"Segoe UI Mono",
|
||||||
|
"Roboto Mono",
|
||||||
|
"Oxygen Mono",
|
||||||
|
"Ubuntu Monospace",
|
||||||
|
"Source Code Pro",
|
||||||
|
"Fira Mono",
|
||||||
|
"Droid Sans Mono",
|
||||||
|
"Courier New",
|
||||||
|
monospace,
|
||||||
|
"Apple Color Emoji",
|
||||||
|
"Segoe UI Emoji",
|
||||||
|
"Segoe UI Symbol",
|
||||||
|
"Noto Color Emoji";
|
||||||
}
|
}
|
||||||
|
|
||||||
html, body {
|
html, body {
|
||||||
|
|
@ -65,7 +94,7 @@ body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
font-size: 0.875rem;
|
font-size: 0.875rem;
|
||||||
font-family: "Roboto","Lucida Grande","DejaVu Sans","Bitstream Vera Sans",Verdana,Arial,sans-serif;
|
font-family: var(--font-family-primary);
|
||||||
color: var(--body-fg);
|
color: var(--body-fg);
|
||||||
background: var(--body-bg);
|
background: var(--body-bg);
|
||||||
}
|
}
|
||||||
|
|
@ -73,7 +102,7 @@ body {
|
||||||
/* LINKS */
|
/* LINKS */
|
||||||
|
|
||||||
a:link, a:visited {
|
a:link, a:visited {
|
||||||
color: var(--link-fg);
|
color: var(--body-fg);
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
transition: color 0.15s, background 0.15s;
|
transition: color 0.15s, background 0.15s;
|
||||||
}
|
}
|
||||||
|
|
@ -163,7 +192,7 @@ li ul {
|
||||||
|
|
||||||
li, dt, dd {
|
li, dt, dd {
|
||||||
font-size: 0.8125rem;
|
font-size: 0.8125rem;
|
||||||
line-height: 20px;
|
line-height: 1.25rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
dt {
|
dt {
|
||||||
|
|
@ -197,7 +226,7 @@ blockquote {
|
||||||
}
|
}
|
||||||
|
|
||||||
code, pre {
|
code, pre {
|
||||||
font-family: "Bitstream Vera Sans Mono", Monaco, "Courier New", Courier, monospace;
|
font-family: var(--font-family-monospace);
|
||||||
color: var(--body-quiet-color);
|
color: var(--body-quiet-color);
|
||||||
font-size: 0.75rem;
|
font-size: 0.75rem;
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
|
|
@ -277,7 +306,7 @@ table {
|
||||||
|
|
||||||
td, th {
|
td, th {
|
||||||
font-size: 0.8125rem;
|
font-size: 0.8125rem;
|
||||||
line-height: 16px;
|
line-height: 1rem;
|
||||||
border-bottom: 1px solid var(--hairline-color);
|
border-bottom: 1px solid var(--hairline-color);
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
padding: 8px;
|
padding: 8px;
|
||||||
|
|
@ -441,7 +470,7 @@ input, textarea, select, .form-row p, form .button {
|
||||||
margin: 2px 0;
|
margin: 2px 0;
|
||||||
padding: 2px 3px;
|
padding: 2px 3px;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
font-family: "Roboto", "Lucida Grande", Verdana, Arial, sans-serif;
|
font-family: var(--font-family-primary);
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
font-size: 0.8125rem;
|
font-size: 0.8125rem;
|
||||||
}
|
}
|
||||||
|
|
@ -470,7 +499,7 @@ textarea:focus, select:focus, .vTextField:focus {
|
||||||
}
|
}
|
||||||
|
|
||||||
select {
|
select {
|
||||||
height: 30px;
|
height: 1.875rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
select[multiple] {
|
select[multiple] {
|
||||||
|
|
@ -506,7 +535,6 @@ a.button {
|
||||||
}
|
}
|
||||||
|
|
||||||
.button.default, input[type=submit].default, .submit-row input.default {
|
.button.default, input[type=submit].default, .submit-row input.default {
|
||||||
float: right;
|
|
||||||
border: none;
|
border: none;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
background: var(--default-button-bg);
|
background: var(--default-button-bg);
|
||||||
|
|
@ -556,7 +584,7 @@ input[type=button][disabled].default {
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 0.8125rem;
|
font-size: 0.8125rem;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
background: var(--primary);
|
background: var(--header-bg);
|
||||||
color: var(--header-link-color);
|
color: var(--header-link-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -692,6 +720,11 @@ div.breadcrumbs a:focus, div.breadcrumbs a:hover {
|
||||||
background: url(../img/icon-viewlink.svg) 0 1px no-repeat;
|
background: url(../img/icon-viewlink.svg) 0 1px no-repeat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.hidelink {
|
||||||
|
padding-left: 16px;
|
||||||
|
background: url(../img/icon-hidelink.svg) 0 1px no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
.addlink {
|
.addlink {
|
||||||
padding-left: 16px;
|
padding-left: 16px;
|
||||||
background: url(../img/icon-addlink.svg) 0 1px no-repeat;
|
background: url(../img/icon-addlink.svg) 0 1px no-repeat;
|
||||||
|
|
@ -731,7 +764,7 @@ a.deletelink:focus, a.deletelink:hover {
|
||||||
display: block;
|
display: block;
|
||||||
float: left;
|
float: left;
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
height: 16px;
|
height: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.object-tools a {
|
.object-tools a {
|
||||||
|
|
@ -801,10 +834,6 @@ a.deletelink:focus, a.deletelink:hover {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
#container > div {
|
|
||||||
flex-shrink: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#container > .main {
|
#container > .main {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex: 1 0 auto;
|
flex: 1 0 auto;
|
||||||
|
|
@ -815,6 +844,20 @@ a.deletelink:focus, a.deletelink:hover {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.skip-to-content-link {
|
||||||
|
position: absolute;
|
||||||
|
top: -999px;
|
||||||
|
margin: 5px;
|
||||||
|
padding: 5px;
|
||||||
|
background: var(--body-bg);
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skip-to-content-link:focus {
|
||||||
|
left: 0px;
|
||||||
|
top: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
#content {
|
#content {
|
||||||
padding: 20px 40px;
|
padding: 20px 40px;
|
||||||
}
|
}
|
||||||
|
|
@ -875,7 +918,6 @@ a.deletelink:focus, a.deletelink:hover {
|
||||||
padding: 10px 40px;
|
padding: 10px 40px;
|
||||||
background: var(--header-bg);
|
background: var(--header-bg);
|
||||||
color: var(--header-color);
|
color: var(--header-color);
|
||||||
overflow: hidden;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#header a:link, #header a:visited, #logout-form button {
|
#header a:link, #header a:visited, #logout-form button {
|
||||||
|
|
@ -887,18 +929,19 @@ a.deletelink:focus, a.deletelink:hover {
|
||||||
}
|
}
|
||||||
|
|
||||||
#branding {
|
#branding {
|
||||||
float: left;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
#branding h1 {
|
#site-name {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0 20px 0 0;
|
margin: 0;
|
||||||
|
margin-inline-end: 20px;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
font-size: 1.5rem;
|
font-size: 1.5rem;
|
||||||
color: var(--header-branding-color);
|
color: var(--header-branding-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
#branding h1 a:link, #branding h1 a:visited {
|
#site-name a:link, #site-name a:visited {
|
||||||
color: var(--accent);
|
color: var(--accent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -922,7 +965,7 @@ a.deletelink:focus, a.deletelink:hover {
|
||||||
background: none;
|
background: none;
|
||||||
border: 0;
|
border: 0;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
font-family: "Roboto","Lucida Grande","DejaVu Sans","Bitstream Vera Sans",Verdana,Arial,sans-serif;
|
font-family: var(--font-family-primary);
|
||||||
}
|
}
|
||||||
|
|
||||||
#user-tools {
|
#user-tools {
|
||||||
|
|
@ -1014,8 +1057,8 @@ a.deletelink:focus, a.deletelink:hover {
|
||||||
.delete-confirmation form .cancel-link {
|
.delete-confirmation form .cancel-link {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
height: 15px;
|
height: 0.9375rem;
|
||||||
line-height: 15px;
|
line-height: 0.9375rem;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
padding: 10px 15px;
|
padding: 10px 15px;
|
||||||
color: var(--button-fg);
|
color: var(--button-fg);
|
||||||
|
|
@ -1045,6 +1088,9 @@ a.deletelink:focus, a.deletelink:hover {
|
||||||
/* PAGINATOR */
|
/* PAGINATOR */
|
||||||
|
|
||||||
.paginator {
|
.paginator {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 4px;
|
||||||
font-size: 0.8125rem;
|
font-size: 0.8125rem;
|
||||||
padding-top: 10px;
|
padding-top: 10px;
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
|
|
@ -1087,3 +1133,24 @@ a.deletelink:focus, a.deletelink:hover {
|
||||||
color: white;
|
color: white;
|
||||||
background: var(--link-hover-color);
|
background: var(--link-hover-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.paginator input {
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.base-svgs {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visually-hidden {
|
||||||
|
position: absolute;
|
||||||
|
width: 1px;
|
||||||
|
height: 1px;
|
||||||
|
padding: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
clip: rect(0,0,0,0);
|
||||||
|
white-space: nowrap;
|
||||||
|
border: 0;
|
||||||
|
color: var(--body-fg);
|
||||||
|
background-color: var(--body-bg);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -90,7 +90,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#toolbar #searchbar {
|
#toolbar #searchbar {
|
||||||
height: 19px;
|
height: 1.1875rem;
|
||||||
border: 1px solid var(--border-color);
|
border: 1px solid var(--border-color);
|
||||||
padding: 2px 5px;
|
padding: 2px 5px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
@ -153,6 +153,7 @@
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
padding: 0 15px;
|
padding: 0 15px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
#changelist-filter details summary > * {
|
#changelist-filter details summary > * {
|
||||||
|
|
@ -215,35 +216,32 @@
|
||||||
color: var(--link-hover-color);
|
color: var(--link-hover-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
#changelist-filter #changelist-filter-clear a {
|
#changelist-filter #changelist-filter-extra-actions {
|
||||||
font-size: 0.8125rem;
|
font-size: 0.8125rem;
|
||||||
padding-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
border-bottom: 1px solid var(--hairline-color);
|
border-bottom: 1px solid var(--hairline-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* DATE DRILLDOWN */
|
/* DATE DRILLDOWN */
|
||||||
|
|
||||||
.change-list ul.toplinks {
|
.change-list .toplinks {
|
||||||
display: block;
|
display: flex;
|
||||||
float: left;
|
padding-bottom: 5px;
|
||||||
padding: 0;
|
flex-wrap: wrap;
|
||||||
margin: 0;
|
gap: 3px 17px;
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.change-list ul.toplinks li {
|
|
||||||
padding: 3px 6px;
|
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
list-style-type: none;
|
|
||||||
display: inline-block;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.change-list ul.toplinks .date-back a {
|
.change-list .toplinks a {
|
||||||
|
font-size: 0.8125rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.change-list .toplinks .date-back {
|
||||||
color: var(--body-quiet-color);
|
color: var(--body-quiet-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
.change-list ul.toplinks .date-back a:focus,
|
.change-list .toplinks .date-back:focus,
|
||||||
.change-list ul.toplinks .date-back a:hover {
|
.change-list .toplinks .date-back:hover {
|
||||||
color: var(--link-hover-color);
|
color: var(--link-hover-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -258,16 +256,31 @@
|
||||||
vertical-align: baseline;
|
vertical-align: baseline;
|
||||||
}
|
}
|
||||||
|
|
||||||
#changelist table tbody tr.selected {
|
/* Once the :has() pseudo-class is supported by all browsers, the tr.selected
|
||||||
|
selector and the JS adding the class can be removed. */
|
||||||
|
#changelist tbody tr.selected {
|
||||||
background-color: var(--selected-row);
|
background-color: var(--selected-row);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#changelist tbody tr:has(.action-select:checked) {
|
||||||
|
background-color: var(--selected-row);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (forced-colors: active) {
|
||||||
|
#changelist tbody tr.selected {
|
||||||
|
background-color: SelectedItem;
|
||||||
|
}
|
||||||
|
#changelist tbody tr:has(.action-select:checked) {
|
||||||
|
background-color: SelectedItem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#changelist .actions {
|
#changelist .actions {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
background: var(--body-bg);
|
background: var(--body-bg);
|
||||||
border-top: none;
|
border-top: none;
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
line-height: 24px;
|
line-height: 1.5rem;
|
||||||
color: var(--body-quiet-color);
|
color: var(--body-quiet-color);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
@ -286,7 +299,7 @@
|
||||||
|
|
||||||
#changelist .actions select {
|
#changelist .actions select {
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
height: 24px;
|
height: 1.5rem;
|
||||||
color: var(--body-fg);
|
color: var(--body-fg);
|
||||||
border: 1px solid var(--border-color);
|
border: 1px solid var(--border-color);
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
|
|
@ -313,7 +326,7 @@
|
||||||
background: var(--body-bg);
|
background: var(--body-bg);
|
||||||
box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset;
|
box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
height: 24px;
|
height: 1.5rem;
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
padding: 4px 8px;
|
padding: 4px 8px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
|
||||||
|
|
@ -31,3 +31,94 @@
|
||||||
--close-button-hover-bg: #666666;
|
--close-button-hover-bg: #666666;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
html[data-theme="dark"] {
|
||||||
|
--primary: #264b5d;
|
||||||
|
--primary-fg: #f7f7f7;
|
||||||
|
|
||||||
|
--body-fg: #eeeeee;
|
||||||
|
--body-bg: #121212;
|
||||||
|
--body-quiet-color: #e0e0e0;
|
||||||
|
--body-loud-color: #ffffff;
|
||||||
|
|
||||||
|
--breadcrumbs-link-fg: #e0e0e0;
|
||||||
|
--breadcrumbs-bg: var(--primary);
|
||||||
|
|
||||||
|
--link-fg: #81d4fa;
|
||||||
|
--link-hover-color: #4ac1f7;
|
||||||
|
--link-selected-fg: #6f94c6;
|
||||||
|
|
||||||
|
--hairline-color: #272727;
|
||||||
|
--border-color: #353535;
|
||||||
|
|
||||||
|
--error-fg: #e35f5f;
|
||||||
|
--message-success-bg: #006b1b;
|
||||||
|
--message-warning-bg: #583305;
|
||||||
|
--message-error-bg: #570808;
|
||||||
|
|
||||||
|
--darkened-bg: #212121;
|
||||||
|
--selected-bg: #1b1b1b;
|
||||||
|
--selected-row: #00363a;
|
||||||
|
|
||||||
|
--close-button-bg: #333333;
|
||||||
|
--close-button-hover-bg: #666666;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* THEME SWITCH */
|
||||||
|
.theme-toggle {
|
||||||
|
cursor: pointer;
|
||||||
|
border: none;
|
||||||
|
padding: 0;
|
||||||
|
background: transparent;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-inline-start: 5px;
|
||||||
|
margin-top: -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.theme-toggle svg {
|
||||||
|
vertical-align: middle;
|
||||||
|
height: 1rem;
|
||||||
|
width: 1rem;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Fully hide screen reader text so we only show the one matching the current
|
||||||
|
theme.
|
||||||
|
*/
|
||||||
|
.theme-toggle .visually-hidden {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[data-theme="auto"] .theme-toggle .theme-label-when-auto {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[data-theme="dark"] .theme-toggle .theme-label-when-dark {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[data-theme="light"] .theme-toggle .theme-label-when-light {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ICONS */
|
||||||
|
.theme-toggle svg.theme-icon-when-auto,
|
||||||
|
.theme-toggle svg.theme-icon-when-dark,
|
||||||
|
.theme-toggle svg.theme-icon-when-light {
|
||||||
|
fill: var(--header-link-color);
|
||||||
|
color: var(--header-bg);
|
||||||
|
}
|
||||||
|
|
||||||
|
html[data-theme="auto"] .theme-toggle svg.theme-icon-when-auto {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[data-theme="dark"] .theme-toggle svg.theme-icon-when-dark {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
html[data-theme="light"] .theme-toggle svg.theme-icon-when-light {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
/* DASHBOARD */
|
/* DASHBOARD */
|
||||||
|
.dashboard td, .dashboard th {
|
||||||
|
word-break: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
.dashboard .module table th {
|
.dashboard .module table th {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,18 @@ form .form-row p {
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.flex-container {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-multiline {
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-multiline > div {
|
||||||
|
padding-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
/* FORM LABELS */
|
/* FORM LABELS */
|
||||||
|
|
||||||
label {
|
label {
|
||||||
|
|
@ -69,7 +81,7 @@ form ul.inline li {
|
||||||
.aligned label {
|
.aligned label {
|
||||||
display: block;
|
display: block;
|
||||||
padding: 4px 10px 0 0;
|
padding: 4px 10px 0 0;
|
||||||
float: left;
|
min-width: 160px;
|
||||||
width: 160px;
|
width: 160px;
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
|
|
@ -79,14 +91,14 @@ form ul.inline li {
|
||||||
content: '';
|
content: '';
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
height: 26px;
|
height: 1.625rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.aligned label + p, .aligned label + div.help, .aligned label + div.readonly {
|
.aligned label + p, .aligned .checkbox-row + div.help, .aligned label + div.readonly {
|
||||||
padding: 6px 0;
|
padding: 6px 0;
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
margin-left: 170px;
|
margin-left: 0;
|
||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -117,16 +129,17 @@ form .aligned div.radiolist {
|
||||||
|
|
||||||
form .aligned p.help,
|
form .aligned p.help,
|
||||||
form .aligned div.help {
|
form .aligned div.help {
|
||||||
clear: left;
|
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
margin-left: 160px;
|
margin-left: 160px;
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
form .aligned label + p.help,
|
form .aligned p.date div.help.timezonewarning,
|
||||||
form .aligned label + div.help {
|
form .aligned p.datetime div.help.timezonewarning,
|
||||||
|
form .aligned p.time div.help.timezonewarning {
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
form .aligned p.help:last-child,
|
form .aligned p.help:last-child,
|
||||||
|
|
@ -171,14 +184,7 @@ form .aligned table p {
|
||||||
width: 610px;
|
width: 610px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.checkbox-row p.help,
|
|
||||||
.checkbox-row div.help {
|
|
||||||
margin-left: 0;
|
|
||||||
padding-left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldset .fieldBox {
|
fieldset .fieldBox {
|
||||||
float: left;
|
|
||||||
margin-right: 20px;
|
margin-right: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -189,6 +195,7 @@ fieldset .fieldBox {
|
||||||
}
|
}
|
||||||
|
|
||||||
form .wide p,
|
form .wide p,
|
||||||
|
form .wide ul.errorlist,
|
||||||
form .wide input + p.help,
|
form .wide input + p.help,
|
||||||
form .wide input + div.help {
|
form .wide input + div.help {
|
||||||
margin-left: 200px;
|
margin-left: 200px;
|
||||||
|
|
@ -196,7 +203,7 @@ form .wide input + div.help {
|
||||||
|
|
||||||
form .wide p.help,
|
form .wide p.help,
|
||||||
form .wide div.help {
|
form .wide div.help {
|
||||||
padding-left: 38px;
|
padding-left: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
form div.help ul {
|
form div.help ul {
|
||||||
|
|
@ -242,19 +249,21 @@ fieldset.collapsed .collapse-toggle {
|
||||||
/* MONOSPACE TEXTAREAS */
|
/* MONOSPACE TEXTAREAS */
|
||||||
|
|
||||||
fieldset.monospace textarea {
|
fieldset.monospace textarea {
|
||||||
font-family: "Bitstream Vera Sans Mono", Monaco, "Courier New", Courier, monospace;
|
font-family: var(--font-family-monospace);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* SUBMIT ROW */
|
/* SUBMIT ROW */
|
||||||
|
|
||||||
.submit-row {
|
.submit-row {
|
||||||
padding: 12px 14px 7px;
|
padding: 12px 14px 12px;
|
||||||
margin: 0 0 20px;
|
margin: 0 0 20px;
|
||||||
background: var(--darkened-bg);
|
background: var(--darkened-bg);
|
||||||
border: 1px solid var(--hairline-color);
|
border: 1px solid var(--hairline-color);
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
text-align: right;
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
gap: 10px;
|
||||||
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
body.popup .submit-row {
|
body.popup .submit-row {
|
||||||
|
|
@ -262,33 +271,29 @@ body.popup .submit-row {
|
||||||
}
|
}
|
||||||
|
|
||||||
.submit-row input {
|
.submit-row input {
|
||||||
height: 35px;
|
height: 2.1875rem;
|
||||||
line-height: 15px;
|
line-height: 0.9375rem;
|
||||||
margin: 0 0 5px 5px;
|
}
|
||||||
|
|
||||||
|
.submit-row input, .submit-row a {
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.submit-row input.default {
|
.submit-row input.default {
|
||||||
margin: 0 0 5px 8px;
|
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
}
|
}
|
||||||
|
|
||||||
.submit-row p {
|
.submit-row a.deletelink {
|
||||||
margin: 0.3em;
|
margin-left: auto;
|
||||||
}
|
|
||||||
|
|
||||||
.submit-row p.deletelink-box {
|
|
||||||
float: left;
|
|
||||||
margin: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.submit-row a.deletelink {
|
.submit-row a.deletelink {
|
||||||
display: block;
|
display: block;
|
||||||
background: var(--delete-button-bg);
|
background: var(--delete-button-bg);
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
padding: 10px 15px;
|
padding: 0.625rem 0.9375rem;
|
||||||
height: 15px;
|
height: 0.9375rem;
|
||||||
line-height: 15px;
|
line-height: 0.9375rem;
|
||||||
margin-bottom: 5px;
|
|
||||||
color: var(--button-fg);
|
color: var(--button-fg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -297,9 +302,8 @@ body.popup .submit-row {
|
||||||
background: var(--close-button-bg);
|
background: var(--close-button-bg);
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
padding: 10px 15px;
|
padding: 10px 15px;
|
||||||
height: 15px;
|
height: 0.9375rem;
|
||||||
line-height: 15px;
|
line-height: 0.9375rem;
|
||||||
margin: 0 0 0 5px;
|
|
||||||
color: var(--button-fg);
|
color: var(--button-fg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -307,12 +311,14 @@ body.popup .submit-row {
|
||||||
.submit-row a.deletelink:hover,
|
.submit-row a.deletelink:hover,
|
||||||
.submit-row a.deletelink:active {
|
.submit-row a.deletelink:active {
|
||||||
background: var(--delete-button-hover-bg);
|
background: var(--delete-button-hover-bg);
|
||||||
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.submit-row a.closelink:focus,
|
.submit-row a.closelink:focus,
|
||||||
.submit-row a.closelink:hover,
|
.submit-row a.closelink:hover,
|
||||||
.submit-row a.closelink:active {
|
.submit-row a.closelink:active {
|
||||||
background: var(--close-button-hover-bg);
|
background: var(--close-button-hover-bg);
|
||||||
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* CUSTOM FORM FIELDS */
|
/* CUSTOM FORM FIELDS */
|
||||||
|
|
@ -512,8 +518,8 @@ body.popup .submit-row {
|
||||||
}
|
}
|
||||||
|
|
||||||
.related-lookup {
|
.related-lookup {
|
||||||
width: 16px;
|
width: 1rem;
|
||||||
height: 16px;
|
height: 1rem;
|
||||||
background-image: url(../img/search.svg);
|
background-image: url(../img/search.svg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -59,8 +59,13 @@
|
||||||
content: '\00AB';
|
content: '\00AB';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.main > #nav-sidebar {
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
.main.shifted > #nav-sidebar {
|
.main.shifted > #nav-sidebar {
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
|
visibility: visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
[dir="rtl"] .main.shifted > #nav-sidebar {
|
[dir="rtl"] .main.shifted > #nav-sidebar {
|
||||||
|
|
@ -97,6 +102,12 @@
|
||||||
background: var(--selected-row);
|
background: var(--selected-row);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (forced-colors: active) {
|
||||||
|
#nav-sidebar .current-model {
|
||||||
|
background-color: SelectedItem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.main > #nav-sidebar + .content {
|
.main > #nav-sidebar + .content {
|
||||||
max-width: calc(100% - 23px);
|
max-width: calc(100% - 23px);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ input[type="submit"], button {
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
}
|
}
|
||||||
|
|
||||||
#branding h1 {
|
#site-name {
|
||||||
margin: 0 0 8px;
|
margin: 0 0 8px;
|
||||||
line-height: 1.2;
|
line-height: 1.2;
|
||||||
}
|
}
|
||||||
|
|
@ -104,13 +104,13 @@ input[type="submit"], button {
|
||||||
}
|
}
|
||||||
|
|
||||||
#changelist-search label {
|
#changelist-search label {
|
||||||
line-height: 22px;
|
line-height: 1.375rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
#toolbar form #searchbar {
|
#toolbar form #searchbar {
|
||||||
flex: 1 0 auto;
|
flex: 1 0 auto;
|
||||||
width: 0;
|
width: 0;
|
||||||
height: 22px;
|
height: 1.375rem;
|
||||||
margin: 0 10px 0 6px;
|
margin: 0 10px 0 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -186,12 +186,12 @@ input[type="submit"], button {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 6px 8px;
|
padding: 6px 8px;
|
||||||
min-height: 36px;
|
min-height: 2.25rem;
|
||||||
font-size: 0.875rem;
|
font-size: 0.875rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.form-row select {
|
.form-row select {
|
||||||
height: 36px;
|
height: 2.25rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.form-row select[multiple] {
|
.form-row select[multiple] {
|
||||||
|
|
@ -199,12 +199,6 @@ input[type="submit"], button {
|
||||||
min-height: 0;
|
min-height: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
fieldset .fieldBox {
|
|
||||||
float: none;
|
|
||||||
margin: 0 -10px;
|
|
||||||
padding: 0 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldset .fieldBox + .fieldBox {
|
fieldset .fieldBox + .fieldBox {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
padding-top: 10px;
|
padding-top: 10px;
|
||||||
|
|
@ -232,37 +226,17 @@ input[type="submit"], button {
|
||||||
}
|
}
|
||||||
|
|
||||||
.submit-row {
|
.submit-row {
|
||||||
padding: 8px 8px 3px 8px;
|
padding: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.submit-row a.deletelink {
|
.submit-row a.deletelink {
|
||||||
padding: 10px 7px;
|
padding: 10px 7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.submit-row input.default {
|
|
||||||
margin: 0 0 5px 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.button, input[type=submit], input[type=button], .submit-row input, a.button {
|
.button, input[type=submit], input[type=button], .submit-row input, a.button {
|
||||||
padding: 7px;
|
padding: 7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Related widget */
|
|
||||||
|
|
||||||
.related-widget-wrapper {
|
|
||||||
float: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.related-widget-wrapper-link + .selector {
|
|
||||||
max-width: calc(100% - 30px);
|
|
||||||
margin-right: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
select + .related-widget-wrapper-link,
|
|
||||||
.related-widget-wrapper-link + .related-widget-wrapper-link {
|
|
||||||
margin-left: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Selector */
|
/* Selector */
|
||||||
|
|
||||||
.selector {
|
.selector {
|
||||||
|
|
@ -280,7 +254,7 @@ input[type="submit"], button {
|
||||||
}
|
}
|
||||||
|
|
||||||
.selector .selector-filter input {
|
.selector .selector-filter input {
|
||||||
width: auto;
|
width: 100%;
|
||||||
min-height: 0;
|
min-height: 0;
|
||||||
flex: 1 1;
|
flex: 1 1;
|
||||||
}
|
}
|
||||||
|
|
@ -302,7 +276,6 @@ input[type="submit"], button {
|
||||||
width: 26px;
|
width: 26px;
|
||||||
height: 52px;
|
height: 52px;
|
||||||
padding: 2px 0;
|
padding: 2px 0;
|
||||||
margin: auto 15px;
|
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
transform: translateY(-10px);
|
transform: translateY(-10px);
|
||||||
}
|
}
|
||||||
|
|
@ -346,7 +319,6 @@ input[type="submit"], button {
|
||||||
width: 52px;
|
width: 52px;
|
||||||
height: 26px;
|
height: 26px;
|
||||||
padding: 0 2px;
|
padding: 0 2px;
|
||||||
margin: 15px auto;
|
|
||||||
transform: none;
|
transform: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -394,10 +366,6 @@ input[type="submit"], button {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
form .form-row p.datetime {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.datetime input {
|
.datetime input {
|
||||||
width: 50%;
|
width: 50%;
|
||||||
max-width: 120px;
|
max-width: 120px;
|
||||||
|
|
@ -446,7 +414,7 @@ input[type="submit"], button {
|
||||||
padding: 15px 20px;
|
padding: 15px 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.login #branding h1 {
|
.login #site-name {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -568,8 +536,6 @@ input[type="submit"], button {
|
||||||
|
|
||||||
.aligned .form-row,
|
.aligned .form-row,
|
||||||
.aligned .form-row > div {
|
.aligned .form-row > div {
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
max-width: 100vw;
|
max-width: 100vw;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -577,6 +543,14 @@ input[type="submit"], button {
|
||||||
width: calc(100vw - 30px);
|
width: calc(100vw - 30px);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.flex-container {
|
||||||
|
flex-flow: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-container.checkbox-row {
|
||||||
|
flex-flow: row;
|
||||||
|
}
|
||||||
|
|
||||||
textarea {
|
textarea {
|
||||||
max-width: none;
|
max-width: none;
|
||||||
}
|
}
|
||||||
|
|
@ -596,6 +570,7 @@ input[type="submit"], button {
|
||||||
|
|
||||||
.aligned label {
|
.aligned label {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
min-width: auto;
|
||||||
padding: 0 0 10px;
|
padding: 0 0 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -610,10 +585,6 @@ input[type="submit"], button {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.aligned .checkbox-row {
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.aligned .checkbox-row input {
|
.aligned .checkbox-row input {
|
||||||
flex: 0 1 auto;
|
flex: 0 1 auto;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
@ -632,7 +603,6 @@ input[type="submit"], button {
|
||||||
}
|
}
|
||||||
|
|
||||||
.aligned p.file-upload {
|
.aligned p.file-upload {
|
||||||
margin-left: 0;
|
|
||||||
font-size: 0.8125rem;
|
font-size: 0.8125rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -656,7 +626,8 @@ input[type="submit"], button {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
form .aligned ul {
|
form .aligned ul,
|
||||||
|
form .aligned ul.errorlist {
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
}
|
}
|
||||||
|
|
@ -695,23 +666,14 @@ input[type="submit"], button {
|
||||||
align-self: center;
|
align-self: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
select + .related-widget-wrapper-link,
|
|
||||||
.related-widget-wrapper-link + .related-widget-wrapper-link {
|
|
||||||
margin-left: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Selector */
|
/* Selector */
|
||||||
|
|
||||||
.selector {
|
.selector {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
gap: 10px 0;
|
||||||
|
|
||||||
.selector > * {
|
|
||||||
float: none;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.selector-available, .selector-chosen {
|
.selector-available, .selector-chosen {
|
||||||
margin-bottom: 0;
|
|
||||||
flex: 1 1 auto;
|
flex: 1 1 auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -721,11 +683,9 @@ input[type="submit"], button {
|
||||||
|
|
||||||
.selector ul.selector-chooser {
|
.selector ul.selector-chooser {
|
||||||
display: block;
|
display: block;
|
||||||
float: none;
|
|
||||||
width: 52px;
|
width: 52px;
|
||||||
height: 26px;
|
height: 26px;
|
||||||
padding: 0 2px;
|
padding: 0 2px;
|
||||||
margin: 15px auto 20px;
|
|
||||||
transform: none;
|
transform: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -823,28 +783,23 @@ input[type="submit"], button {
|
||||||
/* Submit row */
|
/* Submit row */
|
||||||
|
|
||||||
.submit-row {
|
.submit-row {
|
||||||
padding: 10px 10px 5px;
|
padding: 10px;
|
||||||
margin: 0 0 15px;
|
margin: 0 0 15px;
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
gap: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.submit-row > * {
|
.submit-row input, .submit-row input.default, .submit-row a {
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.submit-row input, .submit-row input.default, .submit-row a, .submit-row a.closelink {
|
|
||||||
float: none;
|
|
||||||
margin: 0 0 10px;
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.submit-row a.closelink {
|
.submit-row a.closelink {
|
||||||
padding: 10px 0;
|
padding: 10px 0;
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.submit-row p.deletelink-box {
|
.submit-row a.deletelink {
|
||||||
order: 4;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Messages */
|
/* Messages */
|
||||||
|
|
@ -966,7 +921,7 @@ input[type="submit"], button {
|
||||||
.calendar-shortcuts {
|
.calendar-shortcuts {
|
||||||
padding: 10px 0;
|
padding: 10px 0;
|
||||||
font-size: 0.75rem;
|
font-size: 0.75rem;
|
||||||
line-height: 12px;
|
line-height: 0.75rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.calendar-shortcuts a {
|
.calendar-shortcuts a {
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,8 @@
|
||||||
margin-right: 15px;
|
margin-right: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
[dir="rtl"] .aligned ul {
|
[dir="rtl"] .aligned ul,
|
||||||
|
[dir="rtl"] form .aligned ul.errorlist {
|
||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -77,4 +78,7 @@
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
}
|
}
|
||||||
|
[dir="rtl"] .aligned .vCheckboxLabel {
|
||||||
|
padding: 1px 5px 0 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ th {
|
||||||
margin-right: 1.5em;
|
margin-right: 1.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.viewlink, .addlink, .changelink {
|
.viewlink, .addlink, .changelink, .hidelink {
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
padding-right: 16px;
|
padding-right: 16px;
|
||||||
background-position: 100% 1px;
|
background-position: 100% 1px;
|
||||||
|
|
@ -107,23 +107,25 @@ thead th.sorted .text {
|
||||||
border-left: none;
|
border-left: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.paginator .end {
|
||||||
|
margin-left: 6px;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paginator input {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
/* FORMS */
|
/* FORMS */
|
||||||
|
|
||||||
.aligned label {
|
.aligned label {
|
||||||
padding: 0 0 3px 1em;
|
padding: 0 0 3px 1em;
|
||||||
float: right;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.submit-row {
|
.submit-row a.deletelink {
|
||||||
text-align: left
|
|
||||||
}
|
|
||||||
|
|
||||||
.submit-row p.deletelink-box {
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
.submit-row input.default {
|
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
|
margin-right: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.vDateField, .vTimeField {
|
.vDateField, .vTimeField {
|
||||||
|
|
@ -134,13 +136,11 @@ thead th.sorted .text {
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
form .aligned p.help, form .aligned div.help {
|
|
||||||
clear: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
form .aligned ul {
|
form .aligned ul {
|
||||||
margin-right: 163px;
|
margin-right: 163px;
|
||||||
|
padding-right: 10px;
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
|
padding-left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
form ul.inline li {
|
form ul.inline li {
|
||||||
|
|
@ -149,12 +149,39 @@ form ul.inline li {
|
||||||
padding-left: 7px;
|
padding-left: 7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type=submit].default, .submit-row input.default {
|
form .aligned p.help,
|
||||||
float: left;
|
form .aligned div.help {
|
||||||
|
margin-right: 160px;
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
form div.help ul,
|
||||||
|
form .aligned .checkbox-row + .help,
|
||||||
|
form .aligned p.date div.help.timezonewarning,
|
||||||
|
form .aligned p.datetime div.help.timezonewarning,
|
||||||
|
form .aligned p.time div.help.timezonewarning {
|
||||||
|
margin-right: 0;
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
form .wide p.help, form .wide div.help {
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
form .wide p,
|
||||||
|
form .wide ul.errorlist,
|
||||||
|
form .wide input + p.help,
|
||||||
|
form .wide input + div.help {
|
||||||
|
margin-right: 200px;
|
||||||
|
margin-left: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.submit-row {
|
||||||
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
fieldset .fieldBox {
|
fieldset .fieldBox {
|
||||||
float: right;
|
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
}
|
}
|
||||||
|
|
@ -207,6 +234,38 @@ fieldset .fieldBox {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.selector-add {
|
||||||
|
background: url(../img/selector-icons.svg) 0 -64px no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.active.selector-add:focus, .active.selector-add:hover {
|
||||||
|
background-position: 0 -80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.selector-remove {
|
||||||
|
background: url(../img/selector-icons.svg) 0 -96px no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.active.selector-remove:focus, .active.selector-remove:hover {
|
||||||
|
background-position: 0 -112px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.selector-chooseall {
|
||||||
|
background: url(../img/selector-icons.svg) right -128px no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.active.selector-chooseall:focus, a.active.selector-chooseall:hover {
|
||||||
|
background-position: 100% -144px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.selector-clearall {
|
||||||
|
background: url(../img/selector-icons.svg) 0 -160px no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.active.selector-clearall:focus, a.active.selector-clearall:hover {
|
||||||
|
background-position: 0 -176px;
|
||||||
|
}
|
||||||
|
|
||||||
.inline-deletelink {
|
.inline-deletelink {
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
|
|
@ -237,3 +296,7 @@ form .form-row p.datetime {
|
||||||
margin-left: inherit;
|
margin-left: inherit;
|
||||||
margin-right: 2px;
|
margin-right: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.selector .selector-chooser {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,23 @@
|
||||||
/* SELECTOR (FILTER INTERFACE) */
|
/* SELECTOR (FILTER INTERFACE) */
|
||||||
|
|
||||||
.selector {
|
.selector {
|
||||||
width: 800px;
|
|
||||||
float: left;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
|
flex-grow: 1;
|
||||||
|
gap: 0 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.selector select {
|
.selector select {
|
||||||
width: 380px;
|
|
||||||
height: 17.2em;
|
height: 17.2em;
|
||||||
flex: 1 0 auto;
|
flex: 1 0 auto;
|
||||||
|
overflow: scroll;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.selector-available, .selector-chosen {
|
.selector-available, .selector-chosen {
|
||||||
width: 380px;
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin-bottom: 5px;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
flex: 1 1;
|
||||||
|
|
||||||
.selector-chosen select {
|
|
||||||
border-top: none;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.selector-available h2, .selector-chosen h2 {
|
.selector-available h2, .selector-chosen h2 {
|
||||||
|
|
@ -29,9 +25,24 @@
|
||||||
border-radius: 4px 4px 0 0;
|
border-radius: 4px 4px 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.selector-chosen h2 {
|
.selector-chosen .list-footer-display {
|
||||||
|
border: 1px solid var(--border-color);
|
||||||
|
border-top: none;
|
||||||
|
border-radius: 0 0 4px 4px;
|
||||||
|
margin: 0 0 10px;
|
||||||
|
padding: 8px;
|
||||||
|
text-align: center;
|
||||||
background: var(--primary);
|
background: var(--primary);
|
||||||
color: var(--header-link-color);
|
color: var(--header-link-color);
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.selector-chosen .list-footer-display__clear {
|
||||||
|
color: var(--breadcrumbs-fg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.selector-chosen h2 {
|
||||||
|
background: var(--secondary);
|
||||||
|
color: var(--header-link-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
.selector .selector-available h2 {
|
.selector .selector-available h2 {
|
||||||
|
|
@ -47,6 +58,7 @@
|
||||||
font-size: 0.625rem;
|
font-size: 0.625rem;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
.selector .selector-filter label,
|
.selector .selector-filter label,
|
||||||
|
|
@ -58,10 +70,15 @@
|
||||||
padding: 0;
|
padding: 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
|
min-width: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.selector .selector-available input {
|
.selector-filter input {
|
||||||
width: 320px;
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.selector .selector-available input,
|
||||||
|
.selector .selector-chosen input {
|
||||||
margin-left: 8px;
|
margin-left: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -70,7 +87,7 @@
|
||||||
width: 22px;
|
width: 22px;
|
||||||
background-color: var(--selected-bg);
|
background-color: var(--selected-bg);
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
margin: 0 5px;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
transform: translateY(-17px);
|
transform: translateY(-17px);
|
||||||
}
|
}
|
||||||
|
|
@ -86,6 +103,15 @@
|
||||||
margin: 0 0 10px;
|
margin: 0 0 10px;
|
||||||
border-radius: 0 0 4px 4px;
|
border-radius: 0 0 4px 4px;
|
||||||
}
|
}
|
||||||
|
.selector .selector-chosen--with-filtered select {
|
||||||
|
margin: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
height: 14em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.selector .selector-chosen:not(.selector-chosen--with-filtered) .list-footer-display {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
.selector-add, .selector-remove {
|
.selector-add, .selector-remove {
|
||||||
width: 16px;
|
width: 16px;
|
||||||
|
|
@ -125,7 +151,7 @@ a.selector-chooseall, a.selector-clearall {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
height: 16px;
|
height: 16px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
margin: 1px auto 3px;
|
margin: 0 auto;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
line-height: 16px;
|
line-height: 16px;
|
||||||
|
|
@ -256,8 +282,8 @@ a.active.selector-clearall:focus, a.active.selector-clearall:hover {
|
||||||
.selector .search-label-icon {
|
.selector .search-label-icon {
|
||||||
background: url(../img/search.svg) 0 0 no-repeat;
|
background: url(../img/search.svg) 0 0 no-repeat;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
height: 18px;
|
height: 1.125rem;
|
||||||
width: 18px;
|
width: 1.125rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* DATE AND TIME */
|
/* DATE AND TIME */
|
||||||
|
|
@ -347,10 +373,6 @@ p.file-upload {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.aligned p.file-upload {
|
|
||||||
margin-left: 170px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.file-upload a {
|
.file-upload a {
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
|
|
@ -429,7 +451,7 @@ span.clearable-file-input label {
|
||||||
}
|
}
|
||||||
|
|
||||||
.calendar td.selected a {
|
.calendar td.selected a {
|
||||||
background: var(--primary);
|
background: var(--secondary);
|
||||||
color: var(--button-fg);
|
color: var(--button-fg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -477,7 +499,7 @@ span.clearable-file-input label {
|
||||||
background: var(--body-bg);
|
background: var(--body-bg);
|
||||||
color: var(--body-quiet-color);
|
color: var(--body-quiet-color);
|
||||||
font-size: 0.6875rem;
|
font-size: 0.6875rem;
|
||||||
line-height: 11px;
|
line-height: 0.6875rem;
|
||||||
border-top: 1px solid var(--hairline-color);
|
border-top: 1px solid var(--hairline-color);
|
||||||
padding: 8px 0;
|
padding: 8px 0;
|
||||||
}
|
}
|
||||||
|
|
@ -516,17 +538,17 @@ span.clearable-file-input label {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 4px 0;
|
padding: 4px 0;
|
||||||
font-size: 0.75rem;
|
font-size: 0.75rem;
|
||||||
background: #eee;
|
background: var(--close-button-bg);
|
||||||
border-top: 1px solid var(--border-color);
|
border-top: 1px solid var(--border-color);
|
||||||
color: var(--body-fg);
|
color: var(--button-fg);
|
||||||
}
|
}
|
||||||
|
|
||||||
.calendar-cancel:focus, .calendar-cancel:hover {
|
.calendar-cancel:focus, .calendar-cancel:hover {
|
||||||
background: #ddd;
|
background: var(--close-button-hover-bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
.calendar-cancel a {
|
.calendar-cancel a {
|
||||||
color: black;
|
color: var(--button-fg);
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -557,24 +579,25 @@ ul.timelist, .timelist li {
|
||||||
|
|
||||||
/* RELATED WIDGET WRAPPER */
|
/* RELATED WIDGET WRAPPER */
|
||||||
.related-widget-wrapper {
|
.related-widget-wrapper {
|
||||||
float: left; /* display properly in form rows with multiple fields */
|
display: flex;
|
||||||
overflow: hidden; /* clear floated contents */
|
gap: 0 10px;
|
||||||
|
flex-grow: 1;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin-bottom: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.related-widget-wrapper-link {
|
.related-widget-wrapper-link {
|
||||||
opacity: 0.3;
|
opacity: .6;
|
||||||
|
filter: grayscale(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.related-widget-wrapper-link:link {
|
.related-widget-wrapper-link:link {
|
||||||
opacity: .8;
|
|
||||||
}
|
|
||||||
|
|
||||||
.related-widget-wrapper-link:link:focus,
|
|
||||||
.related-widget-wrapper-link:link:hover {
|
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
|
filter: grayscale(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
select + .related-widget-wrapper-link,
|
/* GIS MAPS */
|
||||||
.related-widget-wrapper-link + .related-widget-wrapper-link {
|
.dj_map {
|
||||||
margin-left: 7px;
|
width: 600px;
|
||||||
|
height: 400px;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path fill="#2b70bf" d="m555 1335 78-141q-87-63-136-159t-49-203q0-121 61-225-229 117-381 353 167 258 427 375zm389-759q0-20-14-34t-34-14q-125 0-214.5 89.5T592 832q0 20 14 34t34 14 34-14 14-34q0-86 61-147t147-61q20 0 34-14t14-34zm363-191q0 7-1 9-105 188-315 566t-316 567l-49 89q-10 16-28 16-12 0-134-70-16-10-16-28 0-12 44-87-143-65-263.5-173T20 1029Q0 998 0 960t20-69q153-235 380-371t496-136q89 0 180 17l54-97q10-16 28-16 5 0 18 6t31 15.5 33 18.5 31.5 18.5T1291 358q16 10 16 27zm37 447q0 139-79 253.5T1056 1250l280-502q8 45 8 84zm448 128q0 35-20 69-39 64-109 145-150 172-347.5 267T896 1536l74-132q212-18 392.5-137T1664 960q-115-179-282-294l63-112q95 64 182.5 153T1772 891q20 34 20 69z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 784 B |
|
|
@ -41,6 +41,10 @@
|
||||||
}
|
}
|
||||||
SelectBox.redisplay(id);
|
SelectBox.redisplay(id);
|
||||||
},
|
},
|
||||||
|
get_hidden_node_count(id) {
|
||||||
|
const cache = SelectBox.cache[id] || [];
|
||||||
|
return cache.filter(node => node.displayed === 0).length;
|
||||||
|
},
|
||||||
delete_from_cache: function(id, value) {
|
delete_from_cache: function(id, value) {
|
||||||
let delete_index = null;
|
let delete_index = null;
|
||||||
const cache = SelectBox.cache[id];
|
const cache = SelectBox.cache[id];
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,9 @@ Requires core.js and SelectBox.js.
|
||||||
|
|
||||||
// <div class="selector"> or <div class="selector stacked">
|
// <div class="selector"> or <div class="selector stacked">
|
||||||
const selector_div = quickElement('div', from_box.parentNode);
|
const selector_div = quickElement('div', from_box.parentNode);
|
||||||
|
// Make sure the selector div is at the beginning so that the
|
||||||
|
// add link would be displayed to the right of the widget.
|
||||||
|
from_box.parentNode.prepend(selector_div);
|
||||||
selector_div.className = is_stacked ? 'selector stacked' : 'selector';
|
selector_div.className = is_stacked ? 'selector stacked' : 'selector';
|
||||||
|
|
||||||
// <div class="selector-available">
|
// <div class="selector-available">
|
||||||
|
|
@ -78,7 +81,7 @@ Requires core.js and SelectBox.js.
|
||||||
remove_link.className = 'selector-remove';
|
remove_link.className = 'selector-remove';
|
||||||
|
|
||||||
// <div class="selector-chosen">
|
// <div class="selector-chosen">
|
||||||
const selector_chosen = quickElement('div', selector_div);
|
const selector_chosen = quickElement('div', selector_div, '', 'id', field_id + '_selector_chosen');
|
||||||
selector_chosen.className = 'selector-chosen';
|
selector_chosen.className = 'selector-chosen';
|
||||||
const title_chosen = quickElement('h2', selector_chosen, interpolate(gettext('Chosen %s') + ' ', [field_name]));
|
const title_chosen = quickElement('h2', selector_chosen, interpolate(gettext('Chosen %s') + ' ', [field_name]));
|
||||||
quickElement(
|
quickElement(
|
||||||
|
|
@ -94,8 +97,29 @@ Requires core.js and SelectBox.js.
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const filter_selected_p = quickElement('p', selector_chosen, '', 'id', field_id + '_filter_selected');
|
||||||
|
filter_selected_p.className = 'selector-filter';
|
||||||
|
|
||||||
|
const search_filter_selected_label = quickElement('label', filter_selected_p, '', 'for', field_id + '_selected_input');
|
||||||
|
|
||||||
|
quickElement(
|
||||||
|
'span', search_filter_selected_label, '',
|
||||||
|
'class', 'help-tooltip search-label-icon',
|
||||||
|
'title', interpolate(gettext("Type into this box to filter down the list of selected %s."), [field_name])
|
||||||
|
);
|
||||||
|
|
||||||
|
filter_selected_p.appendChild(document.createTextNode(' '));
|
||||||
|
|
||||||
|
const filter_selected_input = quickElement('input', filter_selected_p, '', 'type', 'text', 'placeholder', gettext("Filter"));
|
||||||
|
filter_selected_input.id = field_id + '_selected_input';
|
||||||
|
|
||||||
const to_box = quickElement('select', selector_chosen, '', 'id', field_id + '_to', 'multiple', '', 'size', from_box.size, 'name', from_box.name);
|
const to_box = quickElement('select', selector_chosen, '', 'id', field_id + '_to', 'multiple', '', 'size', from_box.size, 'name', from_box.name);
|
||||||
to_box.className = 'filtered';
|
to_box.className = 'filtered';
|
||||||
|
|
||||||
|
const warning_footer = quickElement('div', selector_chosen, '', 'class', 'list-footer-display');
|
||||||
|
quickElement('span', warning_footer, '', 'id', field_id + '_list-footer-display-text');
|
||||||
|
quickElement('span', warning_footer, ' (click to clear)', 'class', 'list-footer-display__clear');
|
||||||
|
|
||||||
const clear_all = quickElement('a', selector_chosen, gettext('Remove all'), 'title', interpolate(gettext('Click to remove all chosen %s at once.'), [field_name]), 'href', '#', 'id', field_id + '_remove_all_link');
|
const clear_all = quickElement('a', selector_chosen, gettext('Remove all'), 'title', interpolate(gettext('Click to remove all chosen %s at once.'), [field_name]), 'href', '#', 'id', field_id + '_remove_all_link');
|
||||||
clear_all.className = 'selector-clearall';
|
clear_all.className = 'selector-clearall';
|
||||||
|
|
||||||
|
|
@ -106,6 +130,8 @@ Requires core.js and SelectBox.js.
|
||||||
if (elem.classList.contains('active')) {
|
if (elem.classList.contains('active')) {
|
||||||
move_func(from, to);
|
move_func(from, to);
|
||||||
SelectFilter.refresh_icons(field_id);
|
SelectFilter.refresh_icons(field_id);
|
||||||
|
SelectFilter.refresh_filtered_selects(field_id);
|
||||||
|
SelectFilter.refresh_filtered_warning(field_id);
|
||||||
}
|
}
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
};
|
};
|
||||||
|
|
@ -121,14 +147,29 @@ Requires core.js and SelectBox.js.
|
||||||
clear_all.addEventListener('click', function(e) {
|
clear_all.addEventListener('click', function(e) {
|
||||||
move_selection(e, this, SelectBox.move_all, field_id + '_to', field_id + '_from');
|
move_selection(e, this, SelectBox.move_all, field_id + '_to', field_id + '_from');
|
||||||
});
|
});
|
||||||
|
warning_footer.addEventListener('click', function(e) {
|
||||||
|
filter_selected_input.value = '';
|
||||||
|
SelectBox.filter(field_id + '_to', '');
|
||||||
|
SelectFilter.refresh_filtered_warning(field_id);
|
||||||
|
SelectFilter.refresh_icons(field_id);
|
||||||
|
});
|
||||||
filter_input.addEventListener('keypress', function(e) {
|
filter_input.addEventListener('keypress', function(e) {
|
||||||
SelectFilter.filter_key_press(e, field_id);
|
SelectFilter.filter_key_press(e, field_id, '_from', '_to');
|
||||||
});
|
});
|
||||||
filter_input.addEventListener('keyup', function(e) {
|
filter_input.addEventListener('keyup', function(e) {
|
||||||
SelectFilter.filter_key_up(e, field_id);
|
SelectFilter.filter_key_up(e, field_id, '_from');
|
||||||
});
|
});
|
||||||
filter_input.addEventListener('keydown', function(e) {
|
filter_input.addEventListener('keydown', function(e) {
|
||||||
SelectFilter.filter_key_down(e, field_id);
|
SelectFilter.filter_key_down(e, field_id, '_from', '_to');
|
||||||
|
});
|
||||||
|
filter_selected_input.addEventListener('keypress', function(e) {
|
||||||
|
SelectFilter.filter_key_press(e, field_id, '_to', '_from');
|
||||||
|
});
|
||||||
|
filter_selected_input.addEventListener('keyup', function(e) {
|
||||||
|
SelectFilter.filter_key_up(e, field_id, '_to', '_selected_input');
|
||||||
|
});
|
||||||
|
filter_selected_input.addEventListener('keydown', function(e) {
|
||||||
|
SelectFilter.filter_key_down(e, field_id, '_to', '_from');
|
||||||
});
|
});
|
||||||
selector_div.addEventListener('change', function(e) {
|
selector_div.addEventListener('change', function(e) {
|
||||||
if (e.target.tagName === 'SELECT') {
|
if (e.target.tagName === 'SELECT') {
|
||||||
|
|
@ -146,6 +187,7 @@ Requires core.js and SelectBox.js.
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
from_box.closest('form').addEventListener('submit', function() {
|
from_box.closest('form').addEventListener('submit', function() {
|
||||||
|
SelectBox.filter(field_id + '_to', '');
|
||||||
SelectBox.select_all(field_id + '_to');
|
SelectBox.select_all(field_id + '_to');
|
||||||
});
|
});
|
||||||
SelectBox.init(field_id + '_from');
|
SelectBox.init(field_id + '_from');
|
||||||
|
|
@ -163,6 +205,24 @@ Requires core.js and SelectBox.js.
|
||||||
field.required = false;
|
field.required = false;
|
||||||
return any_selected;
|
return any_selected;
|
||||||
},
|
},
|
||||||
|
refresh_filtered_warning: function(field_id) {
|
||||||
|
const count = SelectBox.get_hidden_node_count(field_id + '_to');
|
||||||
|
const selector = document.getElementById(field_id + '_selector_chosen');
|
||||||
|
const warning = document.getElementById(field_id + '_list-footer-display-text');
|
||||||
|
selector.className = selector.className.replace('selector-chosen--with-filtered', '');
|
||||||
|
warning.textContent = interpolate(ngettext(
|
||||||
|
'%s selected option not visible',
|
||||||
|
'%s selected options not visible',
|
||||||
|
count
|
||||||
|
), [count]);
|
||||||
|
if(count > 0) {
|
||||||
|
selector.className += ' selector-chosen--with-filtered';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
refresh_filtered_selects: function(field_id) {
|
||||||
|
SelectBox.filter(field_id + '_from', document.getElementById(field_id + "_input").value);
|
||||||
|
SelectBox.filter(field_id + '_to', document.getElementById(field_id + "_selected_input").value);
|
||||||
|
},
|
||||||
refresh_icons: function(field_id) {
|
refresh_icons: function(field_id) {
|
||||||
const from = document.getElementById(field_id + '_from');
|
const from = document.getElementById(field_id + '_from');
|
||||||
const to = document.getElementById(field_id + '_to');
|
const to = document.getElementById(field_id + '_to');
|
||||||
|
|
@ -172,39 +232,47 @@ Requires core.js and SelectBox.js.
|
||||||
// Active if the corresponding box isn't empty
|
// Active if the corresponding box isn't empty
|
||||||
document.getElementById(field_id + '_add_all_link').classList.toggle('active', from.querySelector('option'));
|
document.getElementById(field_id + '_add_all_link').classList.toggle('active', from.querySelector('option'));
|
||||||
document.getElementById(field_id + '_remove_all_link').classList.toggle('active', to.querySelector('option'));
|
document.getElementById(field_id + '_remove_all_link').classList.toggle('active', to.querySelector('option'));
|
||||||
|
SelectFilter.refresh_filtered_warning(field_id);
|
||||||
},
|
},
|
||||||
filter_key_press: function(event, field_id) {
|
filter_key_press: function(event, field_id, source, target) {
|
||||||
const from = document.getElementById(field_id + '_from');
|
const source_box = document.getElementById(field_id + source);
|
||||||
// don't submit form if user pressed Enter
|
// don't submit form if user pressed Enter
|
||||||
if ((event.which && event.which === 13) || (event.keyCode && event.keyCode === 13)) {
|
if ((event.which && event.which === 13) || (event.keyCode && event.keyCode === 13)) {
|
||||||
from.selectedIndex = 0;
|
source_box.selectedIndex = 0;
|
||||||
SelectBox.move(field_id + '_from', field_id + '_to');
|
SelectBox.move(field_id + source, field_id + target);
|
||||||
from.selectedIndex = 0;
|
source_box.selectedIndex = 0;
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
filter_key_up: function(event, field_id) {
|
filter_key_up: function(event, field_id, source, filter_input) {
|
||||||
const from = document.getElementById(field_id + '_from');
|
const input = filter_input || '_input';
|
||||||
const temp = from.selectedIndex;
|
const source_box = document.getElementById(field_id + source);
|
||||||
SelectBox.filter(field_id + '_from', document.getElementById(field_id + '_input').value);
|
const temp = source_box.selectedIndex;
|
||||||
from.selectedIndex = temp;
|
SelectBox.filter(field_id + source, document.getElementById(field_id + input).value);
|
||||||
|
source_box.selectedIndex = temp;
|
||||||
|
SelectFilter.refresh_filtered_warning(field_id);
|
||||||
|
SelectFilter.refresh_icons(field_id);
|
||||||
},
|
},
|
||||||
filter_key_down: function(event, field_id) {
|
filter_key_down: function(event, field_id, source, target) {
|
||||||
const from = document.getElementById(field_id + '_from');
|
const source_box = document.getElementById(field_id + source);
|
||||||
|
// right key (39) or left key (37)
|
||||||
|
const direction = source === '_from' ? 39 : 37;
|
||||||
// right arrow -- move across
|
// right arrow -- move across
|
||||||
if ((event.which && event.which === 39) || (event.keyCode && event.keyCode === 39)) {
|
if ((event.which && event.which === direction) || (event.keyCode && event.keyCode === direction)) {
|
||||||
const old_index = from.selectedIndex;
|
const old_index = source_box.selectedIndex;
|
||||||
SelectBox.move(field_id + '_from', field_id + '_to');
|
SelectBox.move(field_id + source, field_id + target);
|
||||||
from.selectedIndex = (old_index === from.length) ? from.length - 1 : old_index;
|
SelectFilter.refresh_filtered_selects(field_id);
|
||||||
|
SelectFilter.refresh_filtered_warning(field_id);
|
||||||
|
source_box.selectedIndex = (old_index === source_box.length) ? source_box.length - 1 : old_index;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// down arrow -- wrap around
|
// down arrow -- wrap around
|
||||||
if ((event.which && event.which === 40) || (event.keyCode && event.keyCode === 40)) {
|
if ((event.which && event.which === 40) || (event.keyCode && event.keyCode === 40)) {
|
||||||
from.selectedIndex = (from.length === from.selectedIndex + 1) ? 0 : from.selectedIndex + 1;
|
source_box.selectedIndex = (source_box.length === source_box.selectedIndex + 1) ? 0 : source_box.selectedIndex + 1;
|
||||||
}
|
}
|
||||||
// up arrow -- wrap around
|
// up arrow -- wrap around
|
||||||
if ((event.which && event.which === 38) || (event.keyCode && event.keyCode === 38)) {
|
if ((event.which && event.which === 38) || (event.keyCode && event.keyCode === 38)) {
|
||||||
from.selectedIndex = (from.selectedIndex === 0) ? from.length - 1 : from.selectedIndex - 1;
|
source_box.selectedIndex = (source_box.selectedIndex === 0) ? source_box.length - 1 : source_box.selectedIndex - 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -179,6 +179,9 @@
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
// Sync counter when navigating to the page, such as through the back
|
||||||
|
// button.
|
||||||
|
window.addEventListener('pageshow', (event) => updateCounter(actionCheckboxes, options));
|
||||||
};
|
};
|
||||||
|
|
||||||
// Call function fn when the DOM is loaded and ready. If it is already
|
// Call function fn when the DOM is loaded and ready. If it is already
|
||||||
|
|
|
||||||
|
|
@ -90,10 +90,9 @@
|
||||||
}
|
}
|
||||||
message = interpolate(message, [timezoneOffset]);
|
message = interpolate(message, [timezoneOffset]);
|
||||||
|
|
||||||
const warning = document.createElement('span');
|
const warning = document.createElement('div');
|
||||||
warning.className = warningClass;
|
warning.classList.add('help', warningClass);
|
||||||
warning.textContent = message;
|
warning.textContent = message;
|
||||||
inp.parentNode.appendChild(document.createElement('br'));
|
|
||||||
inp.parentNode.appendChild(warning);
|
inp.parentNode.appendChild(warning);
|
||||||
},
|
},
|
||||||
// Add clock widget to a given field
|
// Add clock widget to a given field
|
||||||
|
|
|
||||||
|
|
@ -26,13 +26,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function addPopupIndex(name) {
|
function addPopupIndex(name) {
|
||||||
name = name + "__" + (popupIndex + 1);
|
return name + "__" + (popupIndex + 1);
|
||||||
return name;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function removePopupIndex(name) {
|
function removePopupIndex(name) {
|
||||||
name = name.replace(new RegExp("__" + (popupIndex + 1) + "$"), '');
|
return name.replace(new RegExp("__" + (popupIndex + 1) + "$"), '');
|
||||||
return name;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function showAdminPopup(triggeringLink, name_regexp, add_popup) {
|
function showAdminPopup(triggeringLink, name_regexp, add_popup) {
|
||||||
|
|
@ -81,9 +79,11 @@
|
||||||
siblings.each(function() {
|
siblings.each(function() {
|
||||||
const elm = $(this);
|
const elm = $(this);
|
||||||
elm.attr('href', elm.attr('data-href-template').replace('__fk__', value));
|
elm.attr('href', elm.attr('data-href-template').replace('__fk__', value));
|
||||||
|
elm.removeAttr('aria-disabled');
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
siblings.removeAttr('href');
|
siblings.removeAttr('href');
|
||||||
|
siblings.attr('aria-disabled', true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,24 @@ depends on core.js for utility functions like removeChildren or quickElement
|
||||||
pgettext('abbrev. month December', 'Dec')
|
pgettext('abbrev. month December', 'Dec')
|
||||||
],
|
],
|
||||||
daysOfWeek: [
|
daysOfWeek: [
|
||||||
|
gettext('Sunday'),
|
||||||
|
gettext('Monday'),
|
||||||
|
gettext('Tuesday'),
|
||||||
|
gettext('Wednesday'),
|
||||||
|
gettext('Thursday'),
|
||||||
|
gettext('Friday'),
|
||||||
|
gettext('Saturday')
|
||||||
|
],
|
||||||
|
daysOfWeekAbbrev: [
|
||||||
|
pgettext('abbrev. day Sunday', 'Sun'),
|
||||||
|
pgettext('abbrev. day Monday', 'Mon'),
|
||||||
|
pgettext('abbrev. day Tuesday', 'Tue'),
|
||||||
|
pgettext('abbrev. day Wednesday', 'Wed'),
|
||||||
|
pgettext('abbrev. day Thursday', 'Thur'),
|
||||||
|
pgettext('abbrev. day Friday', 'Fri'),
|
||||||
|
pgettext('abbrev. day Saturday', 'Sat')
|
||||||
|
],
|
||||||
|
daysOfWeekInitial: [
|
||||||
pgettext('one letter Sunday', 'S'),
|
pgettext('one letter Sunday', 'S'),
|
||||||
pgettext('one letter Monday', 'M'),
|
pgettext('one letter Monday', 'M'),
|
||||||
pgettext('one letter Tuesday', 'T'),
|
pgettext('one letter Tuesday', 'T'),
|
||||||
|
|
@ -98,7 +116,7 @@ depends on core.js for utility functions like removeChildren or quickElement
|
||||||
// Draw days-of-week header
|
// Draw days-of-week header
|
||||||
let tableRow = quickElement('tr', tableBody);
|
let tableRow = quickElement('tr', tableBody);
|
||||||
for (let i = 0; i < 7; i++) {
|
for (let i = 0; i < 7; i++) {
|
||||||
quickElement('th', tableRow, CalendarNamespace.daysOfWeek[(i + CalendarNamespace.firstDayOfWeek) % 7]);
|
quickElement('th', tableRow, CalendarNamespace.daysOfWeekInitial[(i + CalendarNamespace.firstDayOfWeek) % 7]);
|
||||||
}
|
}
|
||||||
|
|
||||||
const startingPos = new Date(year, month - 1, 1 - CalendarNamespace.firstDayOfWeek).getDay();
|
const startingPos = new Date(year, month - 1, 1 - CalendarNamespace.firstDayOfWeek).getDay();
|
||||||
|
|
|
||||||
|
|
@ -85,6 +85,18 @@ function findPosY(obj) {
|
||||||
return (this.getSeconds() < 10) ? '0' + this.getSeconds() : this.getSeconds();
|
return (this.getSeconds() < 10) ? '0' + this.getSeconds() : this.getSeconds();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Date.prototype.getAbbrevDayName = function() {
|
||||||
|
return typeof window.CalendarNamespace === "undefined"
|
||||||
|
? '0' + this.getDay()
|
||||||
|
: window.CalendarNamespace.daysOfWeekAbbrev[this.getDay()];
|
||||||
|
};
|
||||||
|
|
||||||
|
Date.prototype.getFullDayName = function() {
|
||||||
|
return typeof window.CalendarNamespace === "undefined"
|
||||||
|
? '0' + this.getDay()
|
||||||
|
: window.CalendarNamespace.daysOfWeek[this.getDay()];
|
||||||
|
};
|
||||||
|
|
||||||
Date.prototype.getAbbrevMonthName = function() {
|
Date.prototype.getAbbrevMonthName = function() {
|
||||||
return typeof window.CalendarNamespace === "undefined"
|
return typeof window.CalendarNamespace === "undefined"
|
||||||
? this.getTwoDigitMonth()
|
? this.getTwoDigitMonth()
|
||||||
|
|
@ -99,6 +111,8 @@ function findPosY(obj) {
|
||||||
|
|
||||||
Date.prototype.strftime = function(format) {
|
Date.prototype.strftime = function(format) {
|
||||||
const fields = {
|
const fields = {
|
||||||
|
a: this.getAbbrevDayName(),
|
||||||
|
A: this.getFullDayName(),
|
||||||
b: this.getAbbrevMonthName(),
|
b: this.getAbbrevMonthName(),
|
||||||
B: this.getFullMonthName(),
|
B: this.getFullMonthName(),
|
||||||
c: this.toString(),
|
c: this.toString(),
|
||||||
|
|
@ -119,11 +133,11 @@ function findPosY(obj) {
|
||||||
let result = '', i = 0;
|
let result = '', i = 0;
|
||||||
while (i < format.length) {
|
while (i < format.length) {
|
||||||
if (format.charAt(i) === '%') {
|
if (format.charAt(i) === '%') {
|
||||||
result = result + fields[format.charAt(i + 1)];
|
result += fields[format.charAt(i + 1)];
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
result = result + format.charAt(i);
|
result += format.charAt(i);
|
||||||
}
|
}
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
Object.entries(filters).forEach(([key, value]) => {
|
Object.entries(filters).forEach(([key, value]) => {
|
||||||
const detailElement = document.querySelector(`[data-filter-title='${key}']`);
|
const detailElement = document.querySelector(`[data-filter-title='${CSS.escape(key)}']`);
|
||||||
|
|
||||||
// Check if the filter is present, it could be from other view.
|
// Check if the filter is present, it could be from other view.
|
||||||
if (detailElement) {
|
if (detailElement) {
|
||||||
|
|
|
||||||
|
|
@ -2,47 +2,24 @@
|
||||||
{
|
{
|
||||||
const toggleNavSidebar = document.getElementById('toggle-nav-sidebar');
|
const toggleNavSidebar = document.getElementById('toggle-nav-sidebar');
|
||||||
if (toggleNavSidebar !== null) {
|
if (toggleNavSidebar !== null) {
|
||||||
const navLinks = document.querySelectorAll('#nav-sidebar a');
|
const navSidebar = document.getElementById('nav-sidebar');
|
||||||
function disableNavLinkTabbing() {
|
|
||||||
for (const navLink of navLinks) {
|
|
||||||
navLink.tabIndex = -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function enableNavLinkTabbing() {
|
|
||||||
for (const navLink of navLinks) {
|
|
||||||
navLink.tabIndex = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function disableNavFilterTabbing() {
|
|
||||||
document.getElementById('nav-filter').tabIndex = -1;
|
|
||||||
}
|
|
||||||
function enableNavFilterTabbing() {
|
|
||||||
document.getElementById('nav-filter').tabIndex = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
const main = document.getElementById('main');
|
const main = document.getElementById('main');
|
||||||
let navSidebarIsOpen = localStorage.getItem('django.admin.navSidebarIsOpen');
|
let navSidebarIsOpen = localStorage.getItem('django.admin.navSidebarIsOpen');
|
||||||
if (navSidebarIsOpen === null) {
|
if (navSidebarIsOpen === null) {
|
||||||
navSidebarIsOpen = 'true';
|
navSidebarIsOpen = 'true';
|
||||||
}
|
}
|
||||||
if (navSidebarIsOpen === 'false') {
|
|
||||||
disableNavLinkTabbing();
|
|
||||||
disableNavFilterTabbing();
|
|
||||||
}
|
|
||||||
main.classList.toggle('shifted', navSidebarIsOpen === 'true');
|
main.classList.toggle('shifted', navSidebarIsOpen === 'true');
|
||||||
|
navSidebar.setAttribute('aria-expanded', navSidebarIsOpen);
|
||||||
|
|
||||||
toggleNavSidebar.addEventListener('click', function() {
|
toggleNavSidebar.addEventListener('click', function() {
|
||||||
if (navSidebarIsOpen === 'true') {
|
if (navSidebarIsOpen === 'true') {
|
||||||
navSidebarIsOpen = 'false';
|
navSidebarIsOpen = 'false';
|
||||||
disableNavLinkTabbing();
|
|
||||||
disableNavFilterTabbing();
|
|
||||||
} else {
|
} else {
|
||||||
navSidebarIsOpen = 'true';
|
navSidebarIsOpen = 'true';
|
||||||
enableNavLinkTabbing();
|
|
||||||
enableNavFilterTabbing();
|
|
||||||
}
|
}
|
||||||
localStorage.setItem('django.admin.navSidebarIsOpen', navSidebarIsOpen);
|
localStorage.setItem('django.admin.navSidebarIsOpen', navSidebarIsOpen);
|
||||||
main.classList.toggle('shifted');
|
main.classList.toggle('shifted');
|
||||||
|
navSidebar.setAttribute('aria-expanded', navSidebarIsOpen);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
'use strict';
|
||||||
|
{
|
||||||
|
window.addEventListener('load', function(e) {
|
||||||
|
|
||||||
|
function setTheme(mode) {
|
||||||
|
if (mode !== "light" && mode !== "dark" && mode !== "auto") {
|
||||||
|
console.error(`Got invalid theme mode: ${mode}. Resetting to auto.`);
|
||||||
|
mode = "auto";
|
||||||
|
}
|
||||||
|
document.documentElement.dataset.theme = mode;
|
||||||
|
localStorage.setItem("theme", mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
function cycleTheme() {
|
||||||
|
const currentTheme = localStorage.getItem("theme") || "auto";
|
||||||
|
const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
|
||||||
|
|
||||||
|
if (prefersDark) {
|
||||||
|
// Auto (dark) -> Light -> Dark
|
||||||
|
if (currentTheme === "auto") {
|
||||||
|
setTheme("light");
|
||||||
|
} else if (currentTheme === "light") {
|
||||||
|
setTheme("dark");
|
||||||
|
} else {
|
||||||
|
setTheme("auto");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Auto (light) -> Dark -> Light
|
||||||
|
if (currentTheme === "auto") {
|
||||||
|
setTheme("dark");
|
||||||
|
} else if (currentTheme === "dark") {
|
||||||
|
setTheme("light");
|
||||||
|
} else {
|
||||||
|
setTheme("auto");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function initTheme() {
|
||||||
|
// set theme defined in localStorage if there is one, or fallback to auto mode
|
||||||
|
const currentTheme = localStorage.getItem("theme");
|
||||||
|
currentTheme ? setTheme(currentTheme) : setTheme("auto");
|
||||||
|
}
|
||||||
|
|
||||||
|
function setupTheme() {
|
||||||
|
// Attach event handlers for toggling themes
|
||||||
|
const buttons = document.getElementsByClassName("theme-toggle");
|
||||||
|
Array.from(buttons).forEach((btn) => {
|
||||||
|
btn.addEventListener("click", cycleTheme);
|
||||||
|
});
|
||||||
|
initTheme();
|
||||||
|
}
|
||||||
|
|
||||||
|
setupTheme();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
@ -163,8 +163,7 @@
|
||||||
s = s.replace(/^\s+|\s+$/g, ''); // trim leading/trailing spaces
|
s = s.replace(/^\s+|\s+$/g, ''); // trim leading/trailing spaces
|
||||||
s = s.replace(/[-\s]+/g, '-'); // convert spaces to hyphens
|
s = s.replace(/[-\s]+/g, '-'); // convert spaces to hyphens
|
||||||
s = s.substring(0, num_chars); // trim to first num_chars chars
|
s = s.substring(0, num_chars); // trim to first num_chars chars
|
||||||
s = s.replace(/-+$/g, ''); // trim any trailing hyphens
|
return s.replace(/-+$/g, ''); // trim any trailing hyphens
|
||||||
return s;
|
|
||||||
}
|
}
|
||||||
window.URLify = URLify;
|
window.URLify = URLify;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
|
@ -1,6 +1,6 @@
|
||||||
The MIT License
|
The MIT License
|
||||||
|
|
||||||
Copyright (c) 2007-2017 Steven Levithan <http://xregexp.com/>
|
Copyright (c) 2007-present Steven Levithan <http://xregexp.com/>
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1295,38 +1295,31 @@ select {
|
||||||
margin: 1rem;
|
margin: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.m-0 {
|
|
||||||
margin: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx-auto {
|
.mx-auto {
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.my-0 {
|
|
||||||
margin-top: 0px;
|
|
||||||
margin-bottom: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.my-2 {
|
.my-2 {
|
||||||
margin-top: 0.5rem;
|
margin-top: 0.5rem;
|
||||||
margin-bottom: 0.5rem;
|
margin-bottom: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.my-5 {
|
.my-0 {
|
||||||
margin-top: 1.25rem;
|
margin-top: 0px;
|
||||||
margin-bottom: 1.25rem;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.my-3 {
|
.mb-4 {
|
||||||
margin-top: 0.75rem;
|
margin-bottom: 1rem;
|
||||||
margin-bottom: 0.75rem;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.my-6 {
|
.mt-2 {
|
||||||
margin-top: 1.5rem;
|
margin-top: 0.5rem;
|
||||||
margin-bottom: 1.5rem;
|
}
|
||||||
|
|
||||||
|
.mt-8 {
|
||||||
|
margin-top: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mb-2 {
|
.mb-2 {
|
||||||
|
|
@ -1341,18 +1334,6 @@ select {
|
||||||
margin-top: 1.5rem;
|
margin-top: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mb-4 {
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mt-2 {
|
|
||||||
margin-top: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ml-2 {
|
|
||||||
margin-left: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.block {
|
.block {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
@ -1377,8 +1358,8 @@ select {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.h-auto {
|
.h-full {
|
||||||
height: auto;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.h-screen {
|
.h-screen {
|
||||||
|
|
@ -1405,18 +1386,26 @@ select {
|
||||||
width: 9rem;
|
width: 9rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.max-w-screen-lg {
|
|
||||||
max-width: 1024px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.max-w-full {
|
.max-w-full {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.max-w-sm {
|
||||||
|
max-width: 24rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.max-w-screen-lg {
|
||||||
|
max-width: 1024px;
|
||||||
|
}
|
||||||
|
|
||||||
.max-w-screen-md {
|
.max-w-screen-md {
|
||||||
max-width: 768px;
|
max-width: 768px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.basis-1\/3 {
|
||||||
|
flex-basis: 33.333333%;
|
||||||
|
}
|
||||||
|
|
||||||
.basis-1\/2 {
|
.basis-1\/2 {
|
||||||
flex-basis: 50%;
|
flex-basis: 50%;
|
||||||
}
|
}
|
||||||
|
|
@ -1445,6 +1434,10 @@ select {
|
||||||
place-items: center;
|
place-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.content-start {
|
||||||
|
align-content: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
.items-center {
|
.items-center {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
@ -1461,22 +1454,22 @@ select {
|
||||||
justify-content: space-around;
|
justify-content: space-around;
|
||||||
}
|
}
|
||||||
|
|
||||||
.gap-6 {
|
.gap-4 {
|
||||||
gap: 1.5rem;
|
gap: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.gap-3 {
|
.gap-3 {
|
||||||
gap: 0.75rem;
|
gap: 0.75rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.gap-4 {
|
|
||||||
gap: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.gap-8 {
|
.gap-8 {
|
||||||
gap: 2rem;
|
gap: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.gap-6 {
|
||||||
|
gap: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
.self-center {
|
.self-center {
|
||||||
align-self: center;
|
align-self: center;
|
||||||
}
|
}
|
||||||
|
|
@ -1493,35 +1486,44 @@ select {
|
||||||
border-bottom-width: 1px;
|
border-bottom-width: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.border-t {
|
||||||
|
border-top-width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
.border-dashed {
|
.border-dashed {
|
||||||
border-style: dashed;
|
border-style: dashed;
|
||||||
}
|
}
|
||||||
|
|
||||||
.border-blue-100 {
|
|
||||||
--tw-border-opacity: 1;
|
|
||||||
border-color: rgb(219 234 254 / var(--tw-border-opacity));
|
|
||||||
}
|
|
||||||
|
|
||||||
.border-stone-200 {
|
|
||||||
--tw-border-opacity: 1;
|
|
||||||
border-color: rgb(231 229 228 / var(--tw-border-opacity));
|
|
||||||
}
|
|
||||||
|
|
||||||
.border-slate-400 {
|
.border-slate-400 {
|
||||||
--tw-border-opacity: 1;
|
--tw-border-opacity: 1;
|
||||||
border-color: rgb(148 163 184 / var(--tw-border-opacity));
|
border-color: rgb(148 163 184 / var(--tw-border-opacity));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.border-stone-200 {
|
||||||
|
--tw-border-opacity: 1;
|
||||||
|
border-color: rgb(231 229 228 / var(--tw-border-opacity));
|
||||||
|
}
|
||||||
|
|
||||||
.border-stone-300 {
|
.border-stone-300 {
|
||||||
--tw-border-opacity: 1;
|
--tw-border-opacity: 1;
|
||||||
border-color: rgb(214 211 209 / var(--tw-border-opacity));
|
border-color: rgb(214 211 209 / var(--tw-border-opacity));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.border-blue-100 {
|
||||||
|
--tw-border-opacity: 1;
|
||||||
|
border-color: rgb(219 234 254 / var(--tw-border-opacity));
|
||||||
|
}
|
||||||
|
|
||||||
.bg-white {
|
.bg-white {
|
||||||
--tw-bg-opacity: 1;
|
--tw-bg-opacity: 1;
|
||||||
background-color: rgb(255 255 255 / var(--tw-bg-opacity));
|
background-color: rgb(255 255 255 / var(--tw-bg-opacity));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.bg-green-100 {
|
||||||
|
--tw-bg-opacity: 1;
|
||||||
|
background-color: rgb(220 252 231 / var(--tw-bg-opacity));
|
||||||
|
}
|
||||||
|
|
||||||
.bg-blue-50 {
|
.bg-blue-50 {
|
||||||
--tw-bg-opacity: 1;
|
--tw-bg-opacity: 1;
|
||||||
background-color: rgb(239 246 255 / var(--tw-bg-opacity));
|
background-color: rgb(239 246 255 / var(--tw-bg-opacity));
|
||||||
|
|
@ -1532,48 +1534,43 @@ select {
|
||||||
background-color: rgb(250 250 249 / var(--tw-bg-opacity));
|
background-color: rgb(250 250 249 / var(--tw-bg-opacity));
|
||||||
}
|
}
|
||||||
|
|
||||||
.bg-green-100 {
|
|
||||||
--tw-bg-opacity: 1;
|
|
||||||
background-color: rgb(220 252 231 / var(--tw-bg-opacity));
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-gray-50 {
|
.bg-gray-50 {
|
||||||
--tw-bg-opacity: 1;
|
--tw-bg-opacity: 1;
|
||||||
background-color: rgb(249 250 251 / var(--tw-bg-opacity));
|
background-color: rgb(249 250 251 / var(--tw-bg-opacity));
|
||||||
}
|
}
|
||||||
|
|
||||||
.p-4 {
|
|
||||||
padding: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.p-2 {
|
.p-2 {
|
||||||
padding: 0.5rem;
|
padding: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.p-4 {
|
||||||
|
padding: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
.p-8 {
|
.p-8 {
|
||||||
padding: 2rem;
|
padding: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.px-4 {
|
|
||||||
padding-left: 1rem;
|
|
||||||
padding-right: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.py-3 {
|
|
||||||
padding-top: 0.75rem;
|
|
||||||
padding-bottom: 0.75rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.py-4 {
|
.py-4 {
|
||||||
padding-top: 1rem;
|
padding-top: 1rem;
|
||||||
padding-bottom: 1rem;
|
padding-bottom: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.px-4 {
|
||||||
|
padding-left: 1rem;
|
||||||
|
padding-right: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
.py-2 {
|
.py-2 {
|
||||||
padding-top: 0.5rem;
|
padding-top: 0.5rem;
|
||||||
padding-bottom: 0.5rem;
|
padding-bottom: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.py-3 {
|
||||||
|
padding-top: 0.75rem;
|
||||||
|
padding-bottom: 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
.pb-1 {
|
.pb-1 {
|
||||||
padding-bottom: 0.25rem;
|
padding-bottom: 0.25rem;
|
||||||
}
|
}
|
||||||
|
|
@ -1594,6 +1591,19 @@ select {
|
||||||
font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
|
font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.text-\[15px\] {
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-\[2\.25rem\] {
|
||||||
|
font-size: 2.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-xl {
|
||||||
|
font-size: 1.25rem;
|
||||||
|
line-height: 1.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
.text-2xl {
|
.text-2xl {
|
||||||
font-size: 1.5rem;
|
font-size: 1.5rem;
|
||||||
line-height: 2rem;
|
line-height: 2rem;
|
||||||
|
|
@ -1609,24 +1619,15 @@ select {
|
||||||
line-height: 1rem;
|
line-height: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-xl {
|
|
||||||
font-size: 1.25rem;
|
|
||||||
line-height: 1.75rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-\[15px\] {
|
|
||||||
font-size: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-\[2\.25rem\] {
|
|
||||||
font-size: 2.25rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-5xl {
|
.text-5xl {
|
||||||
font-size: 3rem;
|
font-size: 3rem;
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.font-medium {
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
.font-light {
|
.font-light {
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
}
|
}
|
||||||
|
|
@ -1635,10 +1636,6 @@ select {
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
|
|
||||||
.font-medium {
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
.font-semibold {
|
.font-semibold {
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
@ -1663,11 +1660,22 @@ select {
|
||||||
letter-spacing: 0em;
|
letter-spacing: 0em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.text-white {
|
||||||
|
--tw-text-opacity: 1;
|
||||||
|
color: rgb(255 255 255 / var(--tw-text-opacity));
|
||||||
|
}
|
||||||
|
|
||||||
.antialiased {
|
.antialiased {
|
||||||
-webkit-font-smoothing: antialiased;
|
-webkit-font-smoothing: antialiased;
|
||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.shadow-lg {
|
||||||
|
--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
|
||||||
|
--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
|
||||||
|
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
|
||||||
|
}
|
||||||
|
|
||||||
.shadow-md {
|
.shadow-md {
|
||||||
--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
|
--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
|
||||||
--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
|
--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
|
||||||
|
|
@ -1872,14 +1880,14 @@ h4 {
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-screen {
|
|
||||||
width: 100vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.lg\:w-40 {
|
.lg\:w-40 {
|
||||||
width: 10rem;
|
width: 10rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.lg\:w-screen {
|
||||||
|
width: 100vw;
|
||||||
|
}
|
||||||
|
|
||||||
.lg\:flex-row {
|
.lg\:flex-row {
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1295,38 +1295,31 @@ select {
|
||||||
margin: 1rem;
|
margin: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.m-0 {
|
|
||||||
margin: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx-auto {
|
.mx-auto {
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.my-0 {
|
|
||||||
margin-top: 0px;
|
|
||||||
margin-bottom: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.my-2 {
|
.my-2 {
|
||||||
margin-top: 0.5rem;
|
margin-top: 0.5rem;
|
||||||
margin-bottom: 0.5rem;
|
margin-bottom: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.my-5 {
|
.my-0 {
|
||||||
margin-top: 1.25rem;
|
margin-top: 0px;
|
||||||
margin-bottom: 1.25rem;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.my-3 {
|
.mb-4 {
|
||||||
margin-top: 0.75rem;
|
margin-bottom: 1rem;
|
||||||
margin-bottom: 0.75rem;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.my-6 {
|
.mt-2 {
|
||||||
margin-top: 1.5rem;
|
margin-top: 0.5rem;
|
||||||
margin-bottom: 1.5rem;
|
}
|
||||||
|
|
||||||
|
.mt-8 {
|
||||||
|
margin-top: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mb-2 {
|
.mb-2 {
|
||||||
|
|
@ -1341,18 +1334,6 @@ select {
|
||||||
margin-top: 1.5rem;
|
margin-top: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mb-4 {
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mt-2 {
|
|
||||||
margin-top: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ml-2 {
|
|
||||||
margin-left: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.block {
|
.block {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
@ -1377,8 +1358,8 @@ select {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.h-auto {
|
.h-full {
|
||||||
height: auto;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.h-screen {
|
.h-screen {
|
||||||
|
|
@ -1405,18 +1386,26 @@ select {
|
||||||
width: 9rem;
|
width: 9rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.max-w-screen-lg {
|
|
||||||
max-width: 1024px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.max-w-full {
|
.max-w-full {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.max-w-sm {
|
||||||
|
max-width: 24rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.max-w-screen-lg {
|
||||||
|
max-width: 1024px;
|
||||||
|
}
|
||||||
|
|
||||||
.max-w-screen-md {
|
.max-w-screen-md {
|
||||||
max-width: 768px;
|
max-width: 768px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.basis-1\/3 {
|
||||||
|
flex-basis: 33.333333%;
|
||||||
|
}
|
||||||
|
|
||||||
.basis-1\/2 {
|
.basis-1\/2 {
|
||||||
flex-basis: 50%;
|
flex-basis: 50%;
|
||||||
}
|
}
|
||||||
|
|
@ -1445,6 +1434,10 @@ select {
|
||||||
place-items: center;
|
place-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.content-start {
|
||||||
|
align-content: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
.items-center {
|
.items-center {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
@ -1461,22 +1454,22 @@ select {
|
||||||
justify-content: space-around;
|
justify-content: space-around;
|
||||||
}
|
}
|
||||||
|
|
||||||
.gap-6 {
|
.gap-4 {
|
||||||
gap: 1.5rem;
|
gap: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.gap-3 {
|
.gap-3 {
|
||||||
gap: 0.75rem;
|
gap: 0.75rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.gap-4 {
|
|
||||||
gap: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.gap-8 {
|
.gap-8 {
|
||||||
gap: 2rem;
|
gap: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.gap-6 {
|
||||||
|
gap: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
.self-center {
|
.self-center {
|
||||||
align-self: center;
|
align-self: center;
|
||||||
}
|
}
|
||||||
|
|
@ -1493,35 +1486,44 @@ select {
|
||||||
border-bottom-width: 1px;
|
border-bottom-width: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.border-t {
|
||||||
|
border-top-width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
.border-dashed {
|
.border-dashed {
|
||||||
border-style: dashed;
|
border-style: dashed;
|
||||||
}
|
}
|
||||||
|
|
||||||
.border-blue-100 {
|
|
||||||
--tw-border-opacity: 1;
|
|
||||||
border-color: rgb(219 234 254 / var(--tw-border-opacity));
|
|
||||||
}
|
|
||||||
|
|
||||||
.border-stone-200 {
|
|
||||||
--tw-border-opacity: 1;
|
|
||||||
border-color: rgb(231 229 228 / var(--tw-border-opacity));
|
|
||||||
}
|
|
||||||
|
|
||||||
.border-slate-400 {
|
.border-slate-400 {
|
||||||
--tw-border-opacity: 1;
|
--tw-border-opacity: 1;
|
||||||
border-color: rgb(148 163 184 / var(--tw-border-opacity));
|
border-color: rgb(148 163 184 / var(--tw-border-opacity));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.border-stone-200 {
|
||||||
|
--tw-border-opacity: 1;
|
||||||
|
border-color: rgb(231 229 228 / var(--tw-border-opacity));
|
||||||
|
}
|
||||||
|
|
||||||
.border-stone-300 {
|
.border-stone-300 {
|
||||||
--tw-border-opacity: 1;
|
--tw-border-opacity: 1;
|
||||||
border-color: rgb(214 211 209 / var(--tw-border-opacity));
|
border-color: rgb(214 211 209 / var(--tw-border-opacity));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.border-blue-100 {
|
||||||
|
--tw-border-opacity: 1;
|
||||||
|
border-color: rgb(219 234 254 / var(--tw-border-opacity));
|
||||||
|
}
|
||||||
|
|
||||||
.bg-white {
|
.bg-white {
|
||||||
--tw-bg-opacity: 1;
|
--tw-bg-opacity: 1;
|
||||||
background-color: rgb(255 255 255 / var(--tw-bg-opacity));
|
background-color: rgb(255 255 255 / var(--tw-bg-opacity));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.bg-green-100 {
|
||||||
|
--tw-bg-opacity: 1;
|
||||||
|
background-color: rgb(220 252 231 / var(--tw-bg-opacity));
|
||||||
|
}
|
||||||
|
|
||||||
.bg-blue-50 {
|
.bg-blue-50 {
|
||||||
--tw-bg-opacity: 1;
|
--tw-bg-opacity: 1;
|
||||||
background-color: rgb(239 246 255 / var(--tw-bg-opacity));
|
background-color: rgb(239 246 255 / var(--tw-bg-opacity));
|
||||||
|
|
@ -1532,48 +1534,43 @@ select {
|
||||||
background-color: rgb(250 250 249 / var(--tw-bg-opacity));
|
background-color: rgb(250 250 249 / var(--tw-bg-opacity));
|
||||||
}
|
}
|
||||||
|
|
||||||
.bg-green-100 {
|
|
||||||
--tw-bg-opacity: 1;
|
|
||||||
background-color: rgb(220 252 231 / var(--tw-bg-opacity));
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-gray-50 {
|
.bg-gray-50 {
|
||||||
--tw-bg-opacity: 1;
|
--tw-bg-opacity: 1;
|
||||||
background-color: rgb(249 250 251 / var(--tw-bg-opacity));
|
background-color: rgb(249 250 251 / var(--tw-bg-opacity));
|
||||||
}
|
}
|
||||||
|
|
||||||
.p-4 {
|
|
||||||
padding: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.p-2 {
|
.p-2 {
|
||||||
padding: 0.5rem;
|
padding: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.p-4 {
|
||||||
|
padding: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
.p-8 {
|
.p-8 {
|
||||||
padding: 2rem;
|
padding: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.px-4 {
|
|
||||||
padding-left: 1rem;
|
|
||||||
padding-right: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.py-3 {
|
|
||||||
padding-top: 0.75rem;
|
|
||||||
padding-bottom: 0.75rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.py-4 {
|
.py-4 {
|
||||||
padding-top: 1rem;
|
padding-top: 1rem;
|
||||||
padding-bottom: 1rem;
|
padding-bottom: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.px-4 {
|
||||||
|
padding-left: 1rem;
|
||||||
|
padding-right: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
.py-2 {
|
.py-2 {
|
||||||
padding-top: 0.5rem;
|
padding-top: 0.5rem;
|
||||||
padding-bottom: 0.5rem;
|
padding-bottom: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.py-3 {
|
||||||
|
padding-top: 0.75rem;
|
||||||
|
padding-bottom: 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
.pb-1 {
|
.pb-1 {
|
||||||
padding-bottom: 0.25rem;
|
padding-bottom: 0.25rem;
|
||||||
}
|
}
|
||||||
|
|
@ -1594,6 +1591,19 @@ select {
|
||||||
font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
|
font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.text-\[15px\] {
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-\[2\.25rem\] {
|
||||||
|
font-size: 2.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-xl {
|
||||||
|
font-size: 1.25rem;
|
||||||
|
line-height: 1.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
.text-2xl {
|
.text-2xl {
|
||||||
font-size: 1.5rem;
|
font-size: 1.5rem;
|
||||||
line-height: 2rem;
|
line-height: 2rem;
|
||||||
|
|
@ -1609,24 +1619,15 @@ select {
|
||||||
line-height: 1rem;
|
line-height: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-xl {
|
|
||||||
font-size: 1.25rem;
|
|
||||||
line-height: 1.75rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-\[15px\] {
|
|
||||||
font-size: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-\[2\.25rem\] {
|
|
||||||
font-size: 2.25rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-5xl {
|
.text-5xl {
|
||||||
font-size: 3rem;
|
font-size: 3rem;
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.font-medium {
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
.font-light {
|
.font-light {
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
}
|
}
|
||||||
|
|
@ -1635,10 +1636,6 @@ select {
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
|
|
||||||
.font-medium {
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
.font-semibold {
|
.font-semibold {
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
@ -1663,11 +1660,22 @@ select {
|
||||||
letter-spacing: 0em;
|
letter-spacing: 0em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.text-white {
|
||||||
|
--tw-text-opacity: 1;
|
||||||
|
color: rgb(255 255 255 / var(--tw-text-opacity));
|
||||||
|
}
|
||||||
|
|
||||||
.antialiased {
|
.antialiased {
|
||||||
-webkit-font-smoothing: antialiased;
|
-webkit-font-smoothing: antialiased;
|
||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.shadow-lg {
|
||||||
|
--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
|
||||||
|
--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
|
||||||
|
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
|
||||||
|
}
|
||||||
|
|
||||||
.shadow-md {
|
.shadow-md {
|
||||||
--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
|
--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
|
||||||
--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
|
--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
|
||||||
|
|
@ -1872,14 +1880,14 @@ h4 {
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lg\:w-screen {
|
|
||||||
width: 100vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
.lg\:w-40 {
|
.lg\:w-40 {
|
||||||
width: 10rem;
|
width: 10rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.lg\:w-screen {
|
||||||
|
width: 100vw;
|
||||||
|
}
|
||||||
|
|
||||||
.lg\:flex-row {
|
.lg\:flex-row {
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue