Merge branch 'main' into feat/hide-avatars-on-listings

This commit is contained in:
Jay Sitter 2023-06-26 18:12:04 -04:00 committed by GitHub
commit 43253b01d2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 811 additions and 997 deletions

View file

@ -3,7 +3,7 @@
"env": {
"browser": true
},
"plugins": ["@typescript-eslint", "jsx-a11y"],
"plugins": ["@typescript-eslint", "jsx-a11y", "prettier"],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
@ -41,6 +41,7 @@
"no-var": 0,
"prefer-const": 1,
"prefer-rest-params": 0,
"prettier/prettier": "error",
"quote-props": 0,
"unicorn/filename-case": 0
}

View file

@ -32,7 +32,6 @@ $yiq-contrasted-threshold: 175;
$font-family-sans-serif: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI",
Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji",
"Segoe UI Emoji", "Segoe UI Symbol";
$font-size-base: 0.9375rem;
$h1-font-size: 3rem;
$h2-font-size: 2.5rem;
$h3-font-size: 2rem;

View file

@ -1,5 +1,6 @@
$link-decoration: none;
$min-contrast-ratio: 3;
$font-size-base: 0.875rem;
$container-max-widths: (
lg: 1140px,

File diff suppressed because it is too large Load diff

View file

@ -75,7 +75,7 @@
--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
--bs-body-font-family: var(--bs-font-sans-serif);
--bs-body-font-size: 0.9375rem;
--bs-body-font-size: 0.875rem;
--bs-body-font-weight: 400;
--bs-body-line-height: 1.5;
--bs-body-color: #dee2e6;
@ -247,20 +247,20 @@ h3, .h3 {
}
h4, .h4 {
font-size: calc(1.265625rem + 0.1875vw);
font-size: calc(1.25625rem + 0.075vw);
}
@media (min-width: 1200px) {
h4, .h4 {
font-size: 1.40625rem;
font-size: 1.3125rem;
}
}
h5, .h5 {
font-size: 1.171875rem;
font-size: 1.09375rem;
}
h6, .h6 {
font-size: 0.9375rem;
font-size: 0.875rem;
}
p {
@ -586,7 +586,7 @@ progress {
}
.lead {
font-size: 1.171875rem;
font-size: 1.09375rem;
font-weight: 300;
}
@ -680,7 +680,7 @@ progress {
.blockquote {
margin-bottom: 1rem;
font-size: 1.171875rem;
font-size: 1.09375rem;
}
.blockquote > :last-child {
margin-bottom: 0;
@ -2063,13 +2063,13 @@ progress {
.col-form-label-lg {
padding-top: calc(0.5rem + var(--bs-border-width));
padding-bottom: calc(0.5rem + var(--bs-border-width));
font-size: 1.171875rem;
font-size: 1.09375rem;
}
.col-form-label-sm {
padding-top: calc(0.25rem + var(--bs-border-width));
padding-bottom: calc(0.25rem + var(--bs-border-width));
font-size: 0.8203125rem;
font-size: 0.765625rem;
}
.form-text {
@ -2082,7 +2082,7 @@ progress {
display: block;
width: 100%;
padding: 0.375rem 0.75rem;
font-size: 0.9375rem;
font-size: 0.875rem;
font-weight: 400;
line-height: 1.5;
color: #fff;
@ -2173,7 +2173,7 @@ progress {
.form-control-sm {
min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
padding: 0.25rem 0.5rem;
font-size: 0.8203125rem;
font-size: 0.765625rem;
border-radius: var(--bs-border-radius-sm);
}
.form-control-sm::file-selector-button {
@ -2185,7 +2185,7 @@ progress {
.form-control-lg {
min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
padding: 0.5rem 1rem;
font-size: 1.171875rem;
font-size: 1.09375rem;
border-radius: var(--bs-border-radius-lg);
}
.form-control-lg::file-selector-button {
@ -2232,7 +2232,7 @@ textarea.form-control-lg {
display: block;
width: 100%;
padding: 0.375rem 2.25rem 0.375rem 0.75rem;
font-size: 0.9375rem;
font-size: 0.875rem;
font-weight: 400;
line-height: 1.5;
color: #fff;
@ -2272,7 +2272,7 @@ textarea.form-control-lg {
padding-top: 0.25rem;
padding-bottom: 0.25rem;
padding-left: 0.5rem;
font-size: 0.8203125rem;
font-size: 0.765625rem;
border-radius: var(--bs-border-radius-sm);
}
@ -2280,7 +2280,7 @@ textarea.form-control-lg {
padding-top: 0.5rem;
padding-bottom: 0.5rem;
padding-left: 1rem;
font-size: 1.171875rem;
font-size: 1.09375rem;
border-radius: var(--bs-border-radius-lg);
}
@ -2290,7 +2290,7 @@ textarea.form-control-lg {
.form-check {
display: block;
min-height: 1.40625rem;
min-height: 1.3125rem;
padding-left: 1.5em;
margin-bottom: 0.125rem;
}
@ -2618,7 +2618,7 @@ textarea.form-control-lg {
display: flex;
align-items: center;
padding: 0.375rem 0.75rem;
font-size: 0.9375rem;
font-size: 0.875rem;
font-weight: 400;
line-height: 1.5;
color: #adb5bd;
@ -2634,7 +2634,7 @@ textarea.form-control-lg {
.input-group-lg > .input-group-text,
.input-group-lg > .btn {
padding: 0.5rem 1rem;
font-size: 1.171875rem;
font-size: 1.09375rem;
border-radius: var(--bs-border-radius-lg);
}
@ -2643,7 +2643,7 @@ textarea.form-control-lg {
.input-group-sm > .input-group-text,
.input-group-sm > .btn {
padding: 0.25rem 0.5rem;
font-size: 0.8203125rem;
font-size: 0.765625rem;
border-radius: var(--bs-border-radius-sm);
}
@ -2693,7 +2693,7 @@ textarea.form-control-lg {
max-width: 100%;
padding: 0.25rem 0.5rem;
margin-top: 0.1rem;
font-size: 0.8203125rem;
font-size: 0.765625rem;
color: #fff;
background-color: var(--bs-success);
border-radius: var(--bs-border-radius);
@ -2783,7 +2783,7 @@ textarea.form-control-lg {
max-width: 100%;
padding: 0.25rem 0.5rem;
margin-top: 0.1rem;
font-size: 0.8203125rem;
font-size: 0.765625rem;
color: #fff;
background-color: var(--bs-danger);
border-radius: var(--bs-border-radius);
@ -2861,7 +2861,7 @@ textarea.form-control-lg {
--bs-btn-padding-x: 0.75rem;
--bs-btn-padding-y: 0.375rem;
--bs-btn-font-family: ;
--bs-btn-font-size: 0.9375rem;
--bs-btn-font-size: 0.875rem;
--bs-btn-font-weight: 400;
--bs-btn-line-height: 1.5;
--bs-btn-color: var(--bs-body-color);
@ -3229,14 +3229,14 @@ textarea.form-control-lg {
.btn-lg, .btn-group-lg > .btn {
--bs-btn-padding-y: 0.5rem;
--bs-btn-padding-x: 1rem;
--bs-btn-font-size: 1.171875rem;
--bs-btn-font-size: 1.09375rem;
--bs-btn-border-radius: var(--bs-border-radius-lg);
}
.btn-sm, .btn-group-sm > .btn {
--bs-btn-padding-y: 0.25rem;
--bs-btn-padding-x: 0.5rem;
--bs-btn-font-size: 0.8203125rem;
--bs-btn-font-size: 0.765625rem;
--bs-btn-border-radius: var(--bs-border-radius-sm);
}
@ -3309,7 +3309,7 @@ textarea.form-control-lg {
--bs-dropdown-padding-x: 0;
--bs-dropdown-padding-y: 0.5rem;
--bs-dropdown-spacer: 0.125rem;
--bs-dropdown-font-size: 0.9375rem;
--bs-dropdown-font-size: 0.875rem;
--bs-dropdown-color: var(--bs-body-color);
--bs-dropdown-bg: #222;
--bs-dropdown-border-color: #444;
@ -3567,7 +3567,7 @@ textarea.form-control-lg {
display: block;
padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);
margin-bottom: 0;
font-size: 0.8203125rem;
font-size: 0.765625rem;
color: var(--bs-dropdown-header-color);
white-space: nowrap;
}
@ -3844,15 +3844,15 @@ textarea.form-control-lg {
--bs-navbar-hover-color: #fff;
--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);
--bs-navbar-active-color: #fff;
--bs-navbar-brand-padding-y: 0.32421875rem;
--bs-navbar-brand-padding-y: 0.3359375rem;
--bs-navbar-brand-margin-end: 1rem;
--bs-navbar-brand-font-size: 1.171875rem;
--bs-navbar-brand-font-size: 1.09375rem;
--bs-navbar-brand-color: #fff;
--bs-navbar-brand-hover-color: #fff;
--bs-navbar-nav-link-padding-x: 0.5rem;
--bs-navbar-toggler-padding-y: 0.25rem;
--bs-navbar-toggler-padding-x: 0.75rem;
--bs-navbar-toggler-font-size: 1.171875rem;
--bs-navbar-toggler-font-size: 1.09375rem;
--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28222, 226, 230, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
--bs-navbar-toggler-border-color: rgba(34, 34, 34, 0.1);
--bs-navbar-toggler-border-radius: var(--bs-border-radius);
@ -4477,7 +4477,7 @@ textarea.form-control-lg {
align-items: center;
width: 100%;
padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);
font-size: 0.9375rem;
font-size: 0.875rem;
color: var(--bs-accordion-btn-color);
text-align: left;
background-color: var(--bs-accordion-btn-bg);
@ -4621,7 +4621,7 @@ textarea.form-control-lg {
.pagination {
--bs-pagination-padding-x: 0.75rem;
--bs-pagination-padding-y: 0.375rem;
--bs-pagination-font-size: 0.9375rem;
--bs-pagination-font-size: 0.875rem;
--bs-pagination-color: #fff;
--bs-pagination-bg: #00bc8c;
--bs-pagination-border-width: 0;
@ -4700,14 +4700,14 @@ textarea.form-control-lg {
.pagination-lg {
--bs-pagination-padding-x: 1.5rem;
--bs-pagination-padding-y: 0.75rem;
--bs-pagination-font-size: 1.171875rem;
--bs-pagination-font-size: 1.09375rem;
--bs-pagination-border-radius: var(--bs-border-radius-lg);
}
.pagination-sm {
--bs-pagination-padding-x: 0.5rem;
--bs-pagination-padding-y: 0.25rem;
--bs-pagination-font-size: 0.8203125rem;
--bs-pagination-font-size: 0.765625rem;
--bs-pagination-border-radius: var(--bs-border-radius-sm);
}
@ -4841,7 +4841,7 @@ textarea.form-control-lg {
.progress,
.progress-stacked {
--bs-progress-height: 1rem;
--bs-progress-font-size: 0.703125rem;
--bs-progress-font-size: 0.65625rem;
--bs-progress-bg: #444;
--bs-progress-border-radius: var(--bs-border-radius);
--bs-progress-box-shadow: var(--bs-box-shadow-inset);
@ -5645,7 +5645,7 @@ textarea.form-control-lg {
--bs-tooltip-padding-x: 0.5rem;
--bs-tooltip-padding-y: 0.25rem;
--bs-tooltip-margin: ;
--bs-tooltip-font-size: 0.8203125rem;
--bs-tooltip-font-size: 0.765625rem;
--bs-tooltip-color: var(--bs-body-bg);
--bs-tooltip-bg: var(--bs-emphasis-color);
--bs-tooltip-border-radius: var(--bs-border-radius);
@ -5744,7 +5744,7 @@ textarea.form-control-lg {
.popover {
--bs-popover-zindex: 1070;
--bs-popover-max-width: 276px;
--bs-popover-font-size: 0.8203125rem;
--bs-popover-font-size: 0.765625rem;
--bs-popover-bg: #303030;
--bs-popover-border-width: var(--bs-border-width);
--bs-popover-border-color: var(--bs-border-color-translucent);
@ -5753,7 +5753,7 @@ textarea.form-control-lg {
--bs-popover-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
--bs-popover-header-padding-x: 1rem;
--bs-popover-header-padding-y: 0.5rem;
--bs-popover-header-font-size: 0.9375rem;
--bs-popover-header-font-size: 0.875rem;
--bs-popover-header-color: inherit;
--bs-popover-header-bg: #444;
--bs-popover-body-padding-x: 1rem;
@ -8227,15 +8227,15 @@ textarea.form-control-lg {
}
.fs-4 {
font-size: calc(1.265625rem + 0.1875vw) !important;
font-size: calc(1.25625rem + 0.075vw) !important;
}
.fs-5 {
font-size: 1.171875rem !important;
font-size: 1.09375rem !important;
}
.fs-6 {
font-size: 0.9375rem !important;
font-size: 0.875rem !important;
}
.fst-italic {
@ -11787,7 +11787,7 @@ textarea.form-control-lg {
font-size: 2rem !important;
}
.fs-4 {
font-size: 1.40625rem !important;
font-size: 1.3125rem !important;
}
}
@media print {

View file

@ -75,7 +75,7 @@
--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
--bs-body-font-family: var(--bs-font-sans-serif);
--bs-body-font-size: 0.9375rem;
--bs-body-font-size: 0.875rem;
--bs-body-font-weight: 400;
--bs-body-line-height: 1.5;
--bs-body-color: #dee2e6;
@ -247,20 +247,20 @@ h3, .h3 {
}
h4, .h4 {
font-size: calc(1.265625rem + 0.1875vw);
font-size: calc(1.25625rem + 0.075vw);
}
@media (min-width: 1200px) {
h4, .h4 {
font-size: 1.40625rem;
font-size: 1.3125rem;
}
}
h5, .h5 {
font-size: 1.171875rem;
font-size: 1.09375rem;
}
h6, .h6 {
font-size: 0.9375rem;
font-size: 0.875rem;
}
p {
@ -586,7 +586,7 @@ progress {
}
.lead {
font-size: 1.171875rem;
font-size: 1.09375rem;
font-weight: 300;
}
@ -680,7 +680,7 @@ progress {
.blockquote {
margin-bottom: 1rem;
font-size: 1.171875rem;
font-size: 1.09375rem;
}
.blockquote > :last-child {
margin-bottom: 0;
@ -2063,13 +2063,13 @@ progress {
.col-form-label-lg {
padding-top: calc(0.5rem + var(--bs-border-width));
padding-bottom: calc(0.5rem + var(--bs-border-width));
font-size: 1.171875rem;
font-size: 1.09375rem;
}
.col-form-label-sm {
padding-top: calc(0.25rem + var(--bs-border-width));
padding-bottom: calc(0.25rem + var(--bs-border-width));
font-size: 0.8203125rem;
font-size: 0.765625rem;
}
.form-text {
@ -2082,7 +2082,7 @@ progress {
display: block;
width: 100%;
padding: 0.375rem 0.75rem;
font-size: 0.9375rem;
font-size: 0.875rem;
font-weight: 400;
line-height: 1.5;
color: #fff;
@ -2173,7 +2173,7 @@ progress {
.form-control-sm {
min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
padding: 0.25rem 0.5rem;
font-size: 0.8203125rem;
font-size: 0.765625rem;
border-radius: var(--bs-border-radius-sm);
}
.form-control-sm::file-selector-button {
@ -2185,7 +2185,7 @@ progress {
.form-control-lg {
min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
padding: 0.5rem 1rem;
font-size: 1.171875rem;
font-size: 1.09375rem;
border-radius: var(--bs-border-radius-lg);
}
.form-control-lg::file-selector-button {
@ -2232,7 +2232,7 @@ textarea.form-control-lg {
display: block;
width: 100%;
padding: 0.375rem 2.25rem 0.375rem 0.75rem;
font-size: 0.9375rem;
font-size: 0.875rem;
font-weight: 400;
line-height: 1.5;
color: #fff;
@ -2272,7 +2272,7 @@ textarea.form-control-lg {
padding-top: 0.25rem;
padding-bottom: 0.25rem;
padding-left: 0.5rem;
font-size: 0.8203125rem;
font-size: 0.765625rem;
border-radius: var(--bs-border-radius-sm);
}
@ -2280,7 +2280,7 @@ textarea.form-control-lg {
padding-top: 0.5rem;
padding-bottom: 0.5rem;
padding-left: 1rem;
font-size: 1.171875rem;
font-size: 1.09375rem;
border-radius: var(--bs-border-radius-lg);
}
@ -2290,7 +2290,7 @@ textarea.form-control-lg {
.form-check {
display: block;
min-height: 1.40625rem;
min-height: 1.3125rem;
padding-left: 1.5em;
margin-bottom: 0.125rem;
}
@ -2618,7 +2618,7 @@ textarea.form-control-lg {
display: flex;
align-items: center;
padding: 0.375rem 0.75rem;
font-size: 0.9375rem;
font-size: 0.875rem;
font-weight: 400;
line-height: 1.5;
color: #adb5bd;
@ -2634,7 +2634,7 @@ textarea.form-control-lg {
.input-group-lg > .input-group-text,
.input-group-lg > .btn {
padding: 0.5rem 1rem;
font-size: 1.171875rem;
font-size: 1.09375rem;
border-radius: var(--bs-border-radius-lg);
}
@ -2643,7 +2643,7 @@ textarea.form-control-lg {
.input-group-sm > .input-group-text,
.input-group-sm > .btn {
padding: 0.25rem 0.5rem;
font-size: 0.8203125rem;
font-size: 0.765625rem;
border-radius: var(--bs-border-radius-sm);
}
@ -2693,7 +2693,7 @@ textarea.form-control-lg {
max-width: 100%;
padding: 0.25rem 0.5rem;
margin-top: 0.1rem;
font-size: 0.8203125rem;
font-size: 0.765625rem;
color: #fff;
background-color: var(--bs-success);
border-radius: var(--bs-border-radius);
@ -2783,7 +2783,7 @@ textarea.form-control-lg {
max-width: 100%;
padding: 0.25rem 0.5rem;
margin-top: 0.1rem;
font-size: 0.8203125rem;
font-size: 0.765625rem;
color: #fff;
background-color: var(--bs-danger);
border-radius: var(--bs-border-radius);
@ -2861,7 +2861,7 @@ textarea.form-control-lg {
--bs-btn-padding-x: 0.75rem;
--bs-btn-padding-y: 0.375rem;
--bs-btn-font-family: ;
--bs-btn-font-size: 0.9375rem;
--bs-btn-font-size: 0.875rem;
--bs-btn-font-weight: 400;
--bs-btn-line-height: 1.5;
--bs-btn-color: var(--bs-body-color);
@ -3229,14 +3229,14 @@ textarea.form-control-lg {
.btn-lg, .btn-group-lg > .btn {
--bs-btn-padding-y: 0.5rem;
--bs-btn-padding-x: 1rem;
--bs-btn-font-size: 1.171875rem;
--bs-btn-font-size: 1.09375rem;
--bs-btn-border-radius: var(--bs-border-radius-lg);
}
.btn-sm, .btn-group-sm > .btn {
--bs-btn-padding-y: 0.25rem;
--bs-btn-padding-x: 0.5rem;
--bs-btn-font-size: 0.8203125rem;
--bs-btn-font-size: 0.765625rem;
--bs-btn-border-radius: var(--bs-border-radius-sm);
}
@ -3309,7 +3309,7 @@ textarea.form-control-lg {
--bs-dropdown-padding-x: 0;
--bs-dropdown-padding-y: 0.5rem;
--bs-dropdown-spacer: 0.125rem;
--bs-dropdown-font-size: 0.9375rem;
--bs-dropdown-font-size: 0.875rem;
--bs-dropdown-color: var(--bs-body-color);
--bs-dropdown-bg: #222;
--bs-dropdown-border-color: #444;
@ -3567,7 +3567,7 @@ textarea.form-control-lg {
display: block;
padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);
margin-bottom: 0;
font-size: 0.8203125rem;
font-size: 0.765625rem;
color: var(--bs-dropdown-header-color);
white-space: nowrap;
}
@ -3844,15 +3844,15 @@ textarea.form-control-lg {
--bs-navbar-hover-color: #fff;
--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);
--bs-navbar-active-color: #fff;
--bs-navbar-brand-padding-y: 0.32421875rem;
--bs-navbar-brand-padding-y: 0.3359375rem;
--bs-navbar-brand-margin-end: 1rem;
--bs-navbar-brand-font-size: 1.171875rem;
--bs-navbar-brand-font-size: 1.09375rem;
--bs-navbar-brand-color: #fff;
--bs-navbar-brand-hover-color: #fff;
--bs-navbar-nav-link-padding-x: 0.5rem;
--bs-navbar-toggler-padding-y: 0.25rem;
--bs-navbar-toggler-padding-x: 0.75rem;
--bs-navbar-toggler-font-size: 1.171875rem;
--bs-navbar-toggler-font-size: 1.09375rem;
--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28222, 226, 230, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
--bs-navbar-toggler-border-color: rgba(34, 34, 34, 0.1);
--bs-navbar-toggler-border-radius: var(--bs-border-radius);
@ -4477,7 +4477,7 @@ textarea.form-control-lg {
align-items: center;
width: 100%;
padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);
font-size: 0.9375rem;
font-size: 0.875rem;
color: var(--bs-accordion-btn-color);
text-align: left;
background-color: var(--bs-accordion-btn-bg);
@ -4621,7 +4621,7 @@ textarea.form-control-lg {
.pagination {
--bs-pagination-padding-x: 0.75rem;
--bs-pagination-padding-y: 0.375rem;
--bs-pagination-font-size: 0.9375rem;
--bs-pagination-font-size: 0.875rem;
--bs-pagination-color: #fff;
--bs-pagination-bg: #00bc8c;
--bs-pagination-border-width: 0;
@ -4700,14 +4700,14 @@ textarea.form-control-lg {
.pagination-lg {
--bs-pagination-padding-x: 1.5rem;
--bs-pagination-padding-y: 0.75rem;
--bs-pagination-font-size: 1.171875rem;
--bs-pagination-font-size: 1.09375rem;
--bs-pagination-border-radius: var(--bs-border-radius-lg);
}
.pagination-sm {
--bs-pagination-padding-x: 0.5rem;
--bs-pagination-padding-y: 0.25rem;
--bs-pagination-font-size: 0.8203125rem;
--bs-pagination-font-size: 0.765625rem;
--bs-pagination-border-radius: var(--bs-border-radius-sm);
}
@ -4841,7 +4841,7 @@ textarea.form-control-lg {
.progress,
.progress-stacked {
--bs-progress-height: 1rem;
--bs-progress-font-size: 0.703125rem;
--bs-progress-font-size: 0.65625rem;
--bs-progress-bg: #444;
--bs-progress-border-radius: var(--bs-border-radius);
--bs-progress-box-shadow: var(--bs-box-shadow-inset);
@ -5645,7 +5645,7 @@ textarea.form-control-lg {
--bs-tooltip-padding-x: 0.5rem;
--bs-tooltip-padding-y: 0.25rem;
--bs-tooltip-margin: ;
--bs-tooltip-font-size: 0.8203125rem;
--bs-tooltip-font-size: 0.765625rem;
--bs-tooltip-color: var(--bs-body-bg);
--bs-tooltip-bg: var(--bs-emphasis-color);
--bs-tooltip-border-radius: var(--bs-border-radius);
@ -5744,7 +5744,7 @@ textarea.form-control-lg {
.popover {
--bs-popover-zindex: 1070;
--bs-popover-max-width: 276px;
--bs-popover-font-size: 0.8203125rem;
--bs-popover-font-size: 0.765625rem;
--bs-popover-bg: #303030;
--bs-popover-border-width: var(--bs-border-width);
--bs-popover-border-color: var(--bs-border-color-translucent);
@ -5753,7 +5753,7 @@ textarea.form-control-lg {
--bs-popover-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
--bs-popover-header-padding-x: 1rem;
--bs-popover-header-padding-y: 0.5rem;
--bs-popover-header-font-size: 0.9375rem;
--bs-popover-header-font-size: 0.875rem;
--bs-popover-header-color: inherit;
--bs-popover-header-bg: #444;
--bs-popover-body-padding-x: 1rem;
@ -8227,15 +8227,15 @@ textarea.form-control-lg {
}
.fs-4 {
font-size: calc(1.265625rem + 0.1875vw) !important;
font-size: calc(1.25625rem + 0.075vw) !important;
}
.fs-5 {
font-size: 1.171875rem !important;
font-size: 1.09375rem !important;
}
.fs-6 {
font-size: 0.9375rem !important;
font-size: 0.875rem !important;
}
.fst-italic {
@ -11787,7 +11787,7 @@ textarea.form-control-lg {
font-size: 2rem !important;
}
.fs-4 {
font-size: 1.40625rem !important;
font-size: 1.3125rem !important;
}
}
@media print {

File diff suppressed because it is too large Load diff

View file

@ -75,7 +75,7 @@
--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
--bs-body-font-family: var(--bs-font-sans-serif);
--bs-body-font-size: 1rem;
--bs-body-font-size: 0.875rem;
--bs-body-font-weight: 400;
--bs-body-line-height: 1.5;
--bs-body-color: #495057;
@ -220,47 +220,47 @@ h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {
}
h1, .h1 {
font-size: calc(1.375rem + 1.5vw);
font-size: calc(1.34375rem + 1.125vw);
}
@media (min-width: 1200px) {
h1, .h1 {
font-size: 2.5rem;
font-size: 2.1875rem;
}
}
h2, .h2 {
font-size: calc(1.325rem + 0.9vw);
}
@media (min-width: 1200px) {
h2, .h2 {
font-size: 2rem;
}
}
h3, .h3 {
font-size: calc(1.3rem + 0.6vw);
}
@media (min-width: 1200px) {
h3, .h3 {
h2, .h2 {
font-size: 1.75rem;
}
}
h3, .h3 {
font-size: calc(1.278125rem + 0.3375vw);
}
@media (min-width: 1200px) {
h3, .h3 {
font-size: 1.53125rem;
}
}
h4, .h4 {
font-size: calc(1.275rem + 0.3vw);
font-size: calc(1.25625rem + 0.075vw);
}
@media (min-width: 1200px) {
h4, .h4 {
font-size: 1.5rem;
font-size: 1.3125rem;
}
}
h5, .h5 {
font-size: 1.25rem;
font-size: 1.09375rem;
}
h6, .h6 {
font-size: 1rem;
font-size: 0.875rem;
}
p {
@ -585,7 +585,7 @@ progress {
}
.lead {
font-size: 1.25rem;
font-size: 1.09375rem;
font-weight: 300;
}
@ -679,7 +679,7 @@ progress {
.blockquote {
margin-bottom: 1rem;
font-size: 1.25rem;
font-size: 1.09375rem;
}
.blockquote > :last-child {
margin-bottom: 0;
@ -2062,13 +2062,13 @@ progress {
.col-form-label-lg {
padding-top: calc(0.5rem + var(--bs-border-width));
padding-bottom: calc(0.5rem + var(--bs-border-width));
font-size: 1.25rem;
font-size: 1.09375rem;
}
.col-form-label-sm {
padding-top: calc(0.25rem + var(--bs-border-width));
padding-bottom: calc(0.25rem + var(--bs-border-width));
font-size: 0.875rem;
font-size: 0.765625rem;
}
.form-text {
@ -2081,7 +2081,7 @@ progress {
display: block;
width: 100%;
padding: 0.375rem 0.75rem;
font-size: 1rem;
font-size: 0.875rem;
font-weight: 400;
line-height: 1.5;
color: var(--bs-body-color);
@ -2172,7 +2172,7 @@ progress {
.form-control-sm {
min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
padding: 0.25rem 0.5rem;
font-size: 0.875rem;
font-size: 0.765625rem;
border-radius: var(--bs-border-radius-sm);
}
.form-control-sm::file-selector-button {
@ -2184,7 +2184,7 @@ progress {
.form-control-lg {
min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
padding: 0.5rem 1rem;
font-size: 1.25rem;
font-size: 1.09375rem;
border-radius: var(--bs-border-radius-lg);
}
.form-control-lg::file-selector-button {
@ -2231,7 +2231,7 @@ textarea.form-control-lg {
display: block;
width: 100%;
padding: 0.375rem 2.25rem 0.375rem 0.75rem;
font-size: 1rem;
font-size: 0.875rem;
font-weight: 400;
line-height: 1.5;
color: var(--bs-body-color);
@ -2271,7 +2271,7 @@ textarea.form-control-lg {
padding-top: 0.25rem;
padding-bottom: 0.25rem;
padding-left: 0.5rem;
font-size: 0.875rem;
font-size: 0.765625rem;
border-radius: var(--bs-border-radius-sm);
}
@ -2279,7 +2279,7 @@ textarea.form-control-lg {
padding-top: 0.5rem;
padding-bottom: 0.5rem;
padding-left: 1rem;
font-size: 1.25rem;
font-size: 1.09375rem;
border-radius: var(--bs-border-radius-lg);
}
@ -2289,7 +2289,7 @@ textarea.form-control-lg {
.form-check {
display: block;
min-height: 1.5rem;
min-height: 1.3125rem;
padding-left: 1.5em;
margin-bottom: 0.125rem;
}
@ -2617,7 +2617,7 @@ textarea.form-control-lg {
display: flex;
align-items: center;
padding: 0.375rem 0.75rem;
font-size: 1rem;
font-size: 0.875rem;
font-weight: 400;
line-height: 1.5;
color: var(--bs-body-color);
@ -2633,7 +2633,7 @@ textarea.form-control-lg {
.input-group-lg > .input-group-text,
.input-group-lg > .btn {
padding: 0.5rem 1rem;
font-size: 1.25rem;
font-size: 1.09375rem;
border-radius: var(--bs-border-radius-lg);
}
@ -2642,7 +2642,7 @@ textarea.form-control-lg {
.input-group-sm > .input-group-text,
.input-group-sm > .btn {
padding: 0.25rem 0.5rem;
font-size: 0.875rem;
font-size: 0.765625rem;
border-radius: var(--bs-border-radius-sm);
}
@ -2692,7 +2692,7 @@ textarea.form-control-lg {
max-width: 100%;
padding: 0.25rem 0.5rem;
margin-top: 0.1rem;
font-size: 0.875rem;
font-size: 0.765625rem;
color: #fff;
background-color: var(--bs-success);
border-radius: var(--bs-border-radius);
@ -2782,7 +2782,7 @@ textarea.form-control-lg {
max-width: 100%;
padding: 0.25rem 0.5rem;
margin-top: 0.1rem;
font-size: 0.875rem;
font-size: 0.765625rem;
color: #fff;
background-color: var(--bs-danger);
border-radius: var(--bs-border-radius);
@ -2860,7 +2860,7 @@ textarea.form-control-lg {
--bs-btn-padding-x: 0.75rem;
--bs-btn-padding-y: 0.375rem;
--bs-btn-font-family: ;
--bs-btn-font-size: 1rem;
--bs-btn-font-size: 0.875rem;
--bs-btn-font-weight: 400;
--bs-btn-line-height: 1.5;
--bs-btn-color: var(--bs-body-color);
@ -3228,14 +3228,14 @@ textarea.form-control-lg {
.btn-lg, .btn-group-lg > .btn {
--bs-btn-padding-y: 0.5rem;
--bs-btn-padding-x: 1rem;
--bs-btn-font-size: 1.25rem;
--bs-btn-font-size: 1.09375rem;
--bs-btn-border-radius: var(--bs-border-radius-lg);
}
.btn-sm, .btn-group-sm > .btn {
--bs-btn-padding-y: 0.25rem;
--bs-btn-padding-x: 0.5rem;
--bs-btn-font-size: 0.875rem;
--bs-btn-font-size: 0.765625rem;
--bs-btn-border-radius: var(--bs-border-radius-sm);
}
@ -3308,7 +3308,7 @@ textarea.form-control-lg {
--bs-dropdown-padding-x: 0;
--bs-dropdown-padding-y: 0.5rem;
--bs-dropdown-spacer: 0.125rem;
--bs-dropdown-font-size: 1rem;
--bs-dropdown-font-size: 0.875rem;
--bs-dropdown-color: var(--bs-body-color);
--bs-dropdown-bg: var(--bs-body-bg);
--bs-dropdown-border-color: var(--bs-border-color-translucent);
@ -3566,7 +3566,7 @@ textarea.form-control-lg {
display: block;
padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);
margin-bottom: 0;
font-size: 0.875rem;
font-size: 0.765625rem;
color: var(--bs-dropdown-header-color);
white-space: nowrap;
}
@ -3843,15 +3843,15 @@ textarea.form-control-lg {
--bs-navbar-hover-color: #212529;
--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);
--bs-navbar-active-color: #212529;
--bs-navbar-brand-padding-y: 0.3125rem;
--bs-navbar-brand-padding-y: 0.3359375rem;
--bs-navbar-brand-margin-end: 1rem;
--bs-navbar-brand-font-size: 1.25rem;
--bs-navbar-brand-font-size: 1.09375rem;
--bs-navbar-brand-color: #212529;
--bs-navbar-brand-hover-color: #212529;
--bs-navbar-nav-link-padding-x: 0.5rem;
--bs-navbar-toggler-padding-y: 0.25rem;
--bs-navbar-toggler-padding-x: 0.75rem;
--bs-navbar-toggler-font-size: 1.25rem;
--bs-navbar-toggler-font-size: 1.09375rem;
--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2873, 80, 87, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15);
--bs-navbar-toggler-border-radius: var(--bs-border-radius);
@ -4476,7 +4476,7 @@ textarea.form-control-lg {
align-items: center;
width: 100%;
padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);
font-size: 1rem;
font-size: 0.875rem;
color: var(--bs-accordion-btn-color);
text-align: left;
background-color: var(--bs-accordion-btn-bg);
@ -4620,7 +4620,7 @@ textarea.form-control-lg {
.pagination {
--bs-pagination-padding-x: 0.75rem;
--bs-pagination-padding-y: 0.375rem;
--bs-pagination-font-size: 1rem;
--bs-pagination-font-size: 0.875rem;
--bs-pagination-color: var(--bs-link-color);
--bs-pagination-bg: var(--bs-body-bg);
--bs-pagination-border-width: var(--bs-border-width);
@ -4699,14 +4699,14 @@ textarea.form-control-lg {
.pagination-lg {
--bs-pagination-padding-x: 1.5rem;
--bs-pagination-padding-y: 0.75rem;
--bs-pagination-font-size: 1.25rem;
--bs-pagination-font-size: 1.09375rem;
--bs-pagination-border-radius: var(--bs-border-radius-lg);
}
.pagination-sm {
--bs-pagination-padding-x: 0.5rem;
--bs-pagination-padding-y: 0.25rem;
--bs-pagination-font-size: 0.875rem;
--bs-pagination-font-size: 0.765625rem;
--bs-pagination-border-radius: var(--bs-border-radius-sm);
}
@ -4840,7 +4840,7 @@ textarea.form-control-lg {
.progress,
.progress-stacked {
--bs-progress-height: 1rem;
--bs-progress-font-size: 0.75rem;
--bs-progress-font-size: 0.65625rem;
--bs-progress-bg: var(--bs-secondary-bg);
--bs-progress-border-radius: var(--bs-border-radius);
--bs-progress-box-shadow: var(--bs-box-shadow-inset);
@ -5644,7 +5644,7 @@ textarea.form-control-lg {
--bs-tooltip-padding-x: 0.5rem;
--bs-tooltip-padding-y: 0.25rem;
--bs-tooltip-margin: ;
--bs-tooltip-font-size: 0.875rem;
--bs-tooltip-font-size: 0.765625rem;
--bs-tooltip-color: var(--bs-body-bg);
--bs-tooltip-bg: var(--bs-emphasis-color);
--bs-tooltip-border-radius: var(--bs-border-radius);
@ -5743,7 +5743,7 @@ textarea.form-control-lg {
.popover {
--bs-popover-zindex: 1070;
--bs-popover-max-width: 276px;
--bs-popover-font-size: 0.875rem;
--bs-popover-font-size: 0.765625rem;
--bs-popover-bg: var(--bs-body-bg);
--bs-popover-border-width: var(--bs-border-width);
--bs-popover-border-color: var(--bs-border-color-translucent);
@ -5752,7 +5752,7 @@ textarea.form-control-lg {
--bs-popover-box-shadow: 0 0.5rem 1rem rgba(34, 34, 34, 0.15);
--bs-popover-header-padding-x: 1rem;
--bs-popover-header-padding-y: 0.5rem;
--bs-popover-header-font-size: 1rem;
--bs-popover-header-font-size: 0.875rem;
--bs-popover-header-color: #495057;
--bs-popover-header-bg: var(--bs-secondary-bg);
--bs-popover-body-padding-x: 1rem;
@ -8214,27 +8214,27 @@ textarea.form-control-lg {
}
.fs-1 {
font-size: calc(1.375rem + 1.5vw) !important;
font-size: calc(1.34375rem + 1.125vw) !important;
}
.fs-2 {
font-size: calc(1.325rem + 0.9vw) !important;
}
.fs-3 {
font-size: calc(1.3rem + 0.6vw) !important;
}
.fs-3 {
font-size: calc(1.278125rem + 0.3375vw) !important;
}
.fs-4 {
font-size: calc(1.275rem + 0.3vw) !important;
font-size: calc(1.25625rem + 0.075vw) !important;
}
.fs-5 {
font-size: 1.25rem !important;
font-size: 1.09375rem !important;
}
.fs-6 {
font-size: 1rem !important;
font-size: 0.875rem !important;
}
.fst-italic {
@ -11777,16 +11777,16 @@ textarea.form-control-lg {
}
@media (min-width: 1200px) {
.fs-1 {
font-size: 2.5rem !important;
font-size: 2.1875rem !important;
}
.fs-2 {
font-size: 2rem !important;
}
.fs-3 {
font-size: 1.75rem !important;
}
.fs-3 {
font-size: 1.53125rem !important;
}
.fs-4 {
font-size: 1.5rem !important;
font-size: 1.3125rem !important;
}
}
@media print {

View file

@ -75,7 +75,7 @@
--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
--bs-body-font-family: var(--bs-font-sans-serif);
--bs-body-font-size: 1rem;
--bs-body-font-size: 0.875rem;
--bs-body-font-weight: 400;
--bs-body-line-height: 1.5;
--bs-body-color: #495057;
@ -220,47 +220,47 @@ h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {
}
h1, .h1 {
font-size: calc(1.375rem + 1.5vw);
font-size: calc(1.34375rem + 1.125vw);
}
@media (min-width: 1200px) {
h1, .h1 {
font-size: 2.5rem;
font-size: 2.1875rem;
}
}
h2, .h2 {
font-size: calc(1.325rem + 0.9vw);
}
@media (min-width: 1200px) {
h2, .h2 {
font-size: 2rem;
}
}
h3, .h3 {
font-size: calc(1.3rem + 0.6vw);
}
@media (min-width: 1200px) {
h3, .h3 {
h2, .h2 {
font-size: 1.75rem;
}
}
h3, .h3 {
font-size: calc(1.278125rem + 0.3375vw);
}
@media (min-width: 1200px) {
h3, .h3 {
font-size: 1.53125rem;
}
}
h4, .h4 {
font-size: calc(1.275rem + 0.3vw);
font-size: calc(1.25625rem + 0.075vw);
}
@media (min-width: 1200px) {
h4, .h4 {
font-size: 1.5rem;
font-size: 1.3125rem;
}
}
h5, .h5 {
font-size: 1.25rem;
font-size: 1.09375rem;
}
h6, .h6 {
font-size: 1rem;
font-size: 0.875rem;
}
p {
@ -585,7 +585,7 @@ progress {
}
.lead {
font-size: 1.25rem;
font-size: 1.09375rem;
font-weight: 300;
}
@ -679,7 +679,7 @@ progress {
.blockquote {
margin-bottom: 1rem;
font-size: 1.25rem;
font-size: 1.09375rem;
}
.blockquote > :last-child {
margin-bottom: 0;
@ -2062,13 +2062,13 @@ progress {
.col-form-label-lg {
padding-top: calc(0.5rem + var(--bs-border-width));
padding-bottom: calc(0.5rem + var(--bs-border-width));
font-size: 1.25rem;
font-size: 1.09375rem;
}
.col-form-label-sm {
padding-top: calc(0.25rem + var(--bs-border-width));
padding-bottom: calc(0.25rem + var(--bs-border-width));
font-size: 0.875rem;
font-size: 0.765625rem;
}
.form-text {
@ -2081,7 +2081,7 @@ progress {
display: block;
width: 100%;
padding: 0.375rem 0.75rem;
font-size: 1rem;
font-size: 0.875rem;
font-weight: 400;
line-height: 1.5;
color: var(--bs-body-color);
@ -2172,7 +2172,7 @@ progress {
.form-control-sm {
min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
padding: 0.25rem 0.5rem;
font-size: 0.875rem;
font-size: 0.765625rem;
border-radius: var(--bs-border-radius-sm);
}
.form-control-sm::file-selector-button {
@ -2184,7 +2184,7 @@ progress {
.form-control-lg {
min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
padding: 0.5rem 1rem;
font-size: 1.25rem;
font-size: 1.09375rem;
border-radius: var(--bs-border-radius-lg);
}
.form-control-lg::file-selector-button {
@ -2231,7 +2231,7 @@ textarea.form-control-lg {
display: block;
width: 100%;
padding: 0.375rem 2.25rem 0.375rem 0.75rem;
font-size: 1rem;
font-size: 0.875rem;
font-weight: 400;
line-height: 1.5;
color: var(--bs-body-color);
@ -2271,7 +2271,7 @@ textarea.form-control-lg {
padding-top: 0.25rem;
padding-bottom: 0.25rem;
padding-left: 0.5rem;
font-size: 0.875rem;
font-size: 0.765625rem;
border-radius: var(--bs-border-radius-sm);
}
@ -2279,7 +2279,7 @@ textarea.form-control-lg {
padding-top: 0.5rem;
padding-bottom: 0.5rem;
padding-left: 1rem;
font-size: 1.25rem;
font-size: 1.09375rem;
border-radius: var(--bs-border-radius-lg);
}
@ -2289,7 +2289,7 @@ textarea.form-control-lg {
.form-check {
display: block;
min-height: 1.5rem;
min-height: 1.3125rem;
padding-left: 1.5em;
margin-bottom: 0.125rem;
}
@ -2617,7 +2617,7 @@ textarea.form-control-lg {
display: flex;
align-items: center;
padding: 0.375rem 0.75rem;
font-size: 1rem;
font-size: 0.875rem;
font-weight: 400;
line-height: 1.5;
color: var(--bs-body-color);
@ -2633,7 +2633,7 @@ textarea.form-control-lg {
.input-group-lg > .input-group-text,
.input-group-lg > .btn {
padding: 0.5rem 1rem;
font-size: 1.25rem;
font-size: 1.09375rem;
border-radius: var(--bs-border-radius-lg);
}
@ -2642,7 +2642,7 @@ textarea.form-control-lg {
.input-group-sm > .input-group-text,
.input-group-sm > .btn {
padding: 0.25rem 0.5rem;
font-size: 0.875rem;
font-size: 0.765625rem;
border-radius: var(--bs-border-radius-sm);
}
@ -2692,7 +2692,7 @@ textarea.form-control-lg {
max-width: 100%;
padding: 0.25rem 0.5rem;
margin-top: 0.1rem;
font-size: 0.875rem;
font-size: 0.765625rem;
color: #fff;
background-color: var(--bs-success);
border-radius: var(--bs-border-radius);
@ -2782,7 +2782,7 @@ textarea.form-control-lg {
max-width: 100%;
padding: 0.25rem 0.5rem;
margin-top: 0.1rem;
font-size: 0.875rem;
font-size: 0.765625rem;
color: #fff;
background-color: var(--bs-danger);
border-radius: var(--bs-border-radius);
@ -2860,7 +2860,7 @@ textarea.form-control-lg {
--bs-btn-padding-x: 0.75rem;
--bs-btn-padding-y: 0.375rem;
--bs-btn-font-family: ;
--bs-btn-font-size: 1rem;
--bs-btn-font-size: 0.875rem;
--bs-btn-font-weight: 400;
--bs-btn-line-height: 1.5;
--bs-btn-color: var(--bs-body-color);
@ -3228,14 +3228,14 @@ textarea.form-control-lg {
.btn-lg, .btn-group-lg > .btn {
--bs-btn-padding-y: 0.5rem;
--bs-btn-padding-x: 1rem;
--bs-btn-font-size: 1.25rem;
--bs-btn-font-size: 1.09375rem;
--bs-btn-border-radius: var(--bs-border-radius-lg);
}
.btn-sm, .btn-group-sm > .btn {
--bs-btn-padding-y: 0.25rem;
--bs-btn-padding-x: 0.5rem;
--bs-btn-font-size: 0.875rem;
--bs-btn-font-size: 0.765625rem;
--bs-btn-border-radius: var(--bs-border-radius-sm);
}
@ -3308,7 +3308,7 @@ textarea.form-control-lg {
--bs-dropdown-padding-x: 0;
--bs-dropdown-padding-y: 0.5rem;
--bs-dropdown-spacer: 0.125rem;
--bs-dropdown-font-size: 1rem;
--bs-dropdown-font-size: 0.875rem;
--bs-dropdown-color: var(--bs-body-color);
--bs-dropdown-bg: var(--bs-body-bg);
--bs-dropdown-border-color: var(--bs-border-color-translucent);
@ -3566,7 +3566,7 @@ textarea.form-control-lg {
display: block;
padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);
margin-bottom: 0;
font-size: 0.875rem;
font-size: 0.765625rem;
color: var(--bs-dropdown-header-color);
white-space: nowrap;
}
@ -3843,15 +3843,15 @@ textarea.form-control-lg {
--bs-navbar-hover-color: #212529;
--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);
--bs-navbar-active-color: #212529;
--bs-navbar-brand-padding-y: 0.3125rem;
--bs-navbar-brand-padding-y: 0.3359375rem;
--bs-navbar-brand-margin-end: 1rem;
--bs-navbar-brand-font-size: 1.25rem;
--bs-navbar-brand-font-size: 1.09375rem;
--bs-navbar-brand-color: #212529;
--bs-navbar-brand-hover-color: #212529;
--bs-navbar-nav-link-padding-x: 0.5rem;
--bs-navbar-toggler-padding-y: 0.25rem;
--bs-navbar-toggler-padding-x: 0.75rem;
--bs-navbar-toggler-font-size: 1.25rem;
--bs-navbar-toggler-font-size: 1.09375rem;
--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2873, 80, 87, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15);
--bs-navbar-toggler-border-radius: var(--bs-border-radius);
@ -4476,7 +4476,7 @@ textarea.form-control-lg {
align-items: center;
width: 100%;
padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);
font-size: 1rem;
font-size: 0.875rem;
color: var(--bs-accordion-btn-color);
text-align: left;
background-color: var(--bs-accordion-btn-bg);
@ -4620,7 +4620,7 @@ textarea.form-control-lg {
.pagination {
--bs-pagination-padding-x: 0.75rem;
--bs-pagination-padding-y: 0.375rem;
--bs-pagination-font-size: 1rem;
--bs-pagination-font-size: 0.875rem;
--bs-pagination-color: var(--bs-link-color);
--bs-pagination-bg: var(--bs-body-bg);
--bs-pagination-border-width: var(--bs-border-width);
@ -4699,14 +4699,14 @@ textarea.form-control-lg {
.pagination-lg {
--bs-pagination-padding-x: 1.5rem;
--bs-pagination-padding-y: 0.75rem;
--bs-pagination-font-size: 1.25rem;
--bs-pagination-font-size: 1.09375rem;
--bs-pagination-border-radius: var(--bs-border-radius-lg);
}
.pagination-sm {
--bs-pagination-padding-x: 0.5rem;
--bs-pagination-padding-y: 0.25rem;
--bs-pagination-font-size: 0.875rem;
--bs-pagination-font-size: 0.765625rem;
--bs-pagination-border-radius: var(--bs-border-radius-sm);
}
@ -4840,7 +4840,7 @@ textarea.form-control-lg {
.progress,
.progress-stacked {
--bs-progress-height: 1rem;
--bs-progress-font-size: 0.75rem;
--bs-progress-font-size: 0.65625rem;
--bs-progress-bg: var(--bs-secondary-bg);
--bs-progress-border-radius: var(--bs-border-radius);
--bs-progress-box-shadow: var(--bs-box-shadow-inset);
@ -5644,7 +5644,7 @@ textarea.form-control-lg {
--bs-tooltip-padding-x: 0.5rem;
--bs-tooltip-padding-y: 0.25rem;
--bs-tooltip-margin: ;
--bs-tooltip-font-size: 0.875rem;
--bs-tooltip-font-size: 0.765625rem;
--bs-tooltip-color: var(--bs-body-bg);
--bs-tooltip-bg: var(--bs-emphasis-color);
--bs-tooltip-border-radius: var(--bs-border-radius);
@ -5743,7 +5743,7 @@ textarea.form-control-lg {
.popover {
--bs-popover-zindex: 1070;
--bs-popover-max-width: 276px;
--bs-popover-font-size: 0.875rem;
--bs-popover-font-size: 0.765625rem;
--bs-popover-bg: var(--bs-body-bg);
--bs-popover-border-width: var(--bs-border-width);
--bs-popover-border-color: var(--bs-border-color-translucent);
@ -5752,7 +5752,7 @@ textarea.form-control-lg {
--bs-popover-box-shadow: 0 0.5rem 1rem rgba(34, 34, 34, 0.15);
--bs-popover-header-padding-x: 1rem;
--bs-popover-header-padding-y: 0.5rem;
--bs-popover-header-font-size: 1rem;
--bs-popover-header-font-size: 0.875rem;
--bs-popover-header-color: #495057;
--bs-popover-header-bg: var(--bs-secondary-bg);
--bs-popover-body-padding-x: 1rem;
@ -8214,27 +8214,27 @@ textarea.form-control-lg {
}
.fs-1 {
font-size: calc(1.375rem + 1.5vw) !important;
font-size: calc(1.34375rem + 1.125vw) !important;
}
.fs-2 {
font-size: calc(1.325rem + 0.9vw) !important;
}
.fs-3 {
font-size: calc(1.3rem + 0.6vw) !important;
}
.fs-3 {
font-size: calc(1.278125rem + 0.3375vw) !important;
}
.fs-4 {
font-size: calc(1.275rem + 0.3vw) !important;
font-size: calc(1.25625rem + 0.075vw) !important;
}
.fs-5 {
font-size: 1.25rem !important;
font-size: 1.09375rem !important;
}
.fs-6 {
font-size: 1rem !important;
font-size: 0.875rem !important;
}
.fst-italic {
@ -11777,16 +11777,16 @@ textarea.form-control-lg {
}
@media (min-width: 1200px) {
.fs-1 {
font-size: 2.5rem !important;
font-size: 2.1875rem !important;
}
.fs-2 {
font-size: 2rem !important;
}
.fs-3 {
font-size: 1.75rem !important;
}
.fs-3 {
font-size: 1.53125rem !important;
}
.fs-4 {
font-size: 1.5rem !important;
font-size: 1.3125rem !important;
}
}
@media print {

View file

@ -5,6 +5,7 @@ export default async ({ res }: { res: Response }) => {
res.send(`User-Agent: *
Disallow: /login
Disallow: /login_reset
Disallow: /settings
Disallow: /create_community
Disallow: /create_post

View file

@ -59,7 +59,7 @@ export class App extends Component<any, any> {
return (
<ErrorGuard>
<main tabIndex={-1} ref={this.mainContentRef}>
<div tabIndex={-1}>
{RouteComponent &&
(isAuthPath(path ?? "") ? (
<AuthGuard>
@ -68,7 +68,7 @@ export class App extends Component<any, any> {
) : (
<RouteComponent {...routeProps} />
))}
</main>
</div>
</ErrorGuard>
);
}}

View file

@ -312,7 +312,7 @@ export class CommentNode extends Component<CommentNodeProps, CommentNodeState> {
<PersonListing person={cv.creator} />
</span>
{cv.comment.distinguished && (
<Icon icon="shield" inline classes={`text-danger me-2`} />
<Icon icon="shield" inline classes="text-danger me-2" />
)}
{this.isPostCreator && (
<div className="badge text-bg-light d-none d-sm-inline me-2">

View file

@ -104,7 +104,7 @@ export class VoteButtonsCompact extends Component<
render() {
return (
<div>
<>
<button
type="button"
className={`btn-animate btn py-0 px-1 ${
@ -157,7 +157,7 @@ export class VoteButtonsCompact extends Component<
)}
</button>
)}
</div>
</>
);
}
}
@ -174,7 +174,7 @@ export class VoteButtons extends Component<VoteButtonsProps, VoteButtonsState> {
render() {
return (
<div className={`vote-bar col-1 pe-0 small text-center`}>
<div className="vote-bar col-1 pe-0 small text-center">
<button
type="button"
className={`btn-animate btn btn-link p-0 ${
@ -193,7 +193,7 @@ export class VoteButtons extends Component<VoteButtonsProps, VoteButtonsState> {
</button>
{showScores() ? (
<div
className={`unselectable pointer text-muted px-1 post-score`}
className="unselectable pointer text-muted px-1 post-score"
data-tippy-content={tippy(this.props.counts)}
>
{numToSI(this.props.counts.score)}

View file

@ -22,7 +22,7 @@ import {
} from "@utils/helpers";
import type { QueryParams } from "@utils/types";
import { RouteDataResponse } from "@utils/types";
import { Component, linkEvent } from "inferno";
import { Component, RefObject, createRef, linkEvent } from "inferno";
import { RouteComponentProps } from "inferno-router/dist/Route";
import {
AddAdmin,
@ -154,7 +154,7 @@ export class Community extends Component<
finished: new Map(),
isIsomorphic: false,
};
private readonly mainContentRef: RefObject<HTMLElement>;
constructor(props: RouteComponentProps<{ name: string }>, context: any) {
super(props, context);
@ -195,7 +195,7 @@ export class Community extends Component<
this.handleSavePost = this.handleSavePost.bind(this);
this.handlePurgePost = this.handlePurgePost.bind(this);
this.handleFeaturePost = this.handleFeaturePost.bind(this);
this.mainContentRef = createRef();
// Only fetch the data if coming from another route
if (FirstLoadService.isFirstLoad) {
const { communityRes, commentsRes, postsRes } = this.isoData.routeData;
@ -317,7 +317,7 @@ export class Community extends Component<
/>
<div className="row">
<div className="col-12 col-md-8">
<main className="col-12 col-md-8" ref={this.mainContentRef}>
{this.communityInfo(res)}
<div className="d-block d-md-none">
<button
@ -339,10 +339,10 @@ export class Community extends Component<
{this.selects(res)}
{this.listings(res)}
<Paginator page={page} onChange={this.handlePageChange} />
</div>
<div className="d-none d-md-block col-md-4">
</main>
<aside className="d-none d-md-block col-md-4">
{this.sidebar(res)}
</div>
</aside>
</div>
</>
);

View file

@ -255,7 +255,7 @@ export class EmojiForm extends Component<EmojiFormProps, EmojiFormState> {
>
<Icon
icon="trash"
classes={`icon-inline text-danger`}
classes="icon-inline text-danger"
/>
</button>
</div>

View file

@ -0,0 +1,138 @@
import { setIsoData } from "@utils/app";
import { capitalizeFirstLetter, validEmail } from "@utils/helpers";
import { Component, linkEvent } from "inferno";
import { GetSiteResponse } from "lemmy-js-client";
import { HttpService, I18NextService, UserService } from "../../services";
import { toast } from "../../toast";
import { HtmlTags } from "../common/html-tags";
import { Spinner } from "../common/icon";
interface State {
form: {
email: string;
loading: boolean;
};
siteRes: GetSiteResponse;
}
export class LoginReset extends Component<any, State> {
private isoData = setIsoData(this.context);
state: State = {
form: {
email: "",
loading: false,
},
siteRes: this.isoData.site_res,
};
constructor(props: any, context: any) {
super(props, context);
}
componentDidMount() {
if (UserService.Instance.myUserInfo) {
this.context.router.history.push("/");
}
}
get documentTitle(): string {
return `${capitalizeFirstLetter(
I18NextService.i18n.t("forgot_password")
)} - ${this.state.siteRes.site_view.site.name}`;
}
render() {
return (
<div className="container-lg">
<HtmlTags
title={this.documentTitle}
path={this.context.router.route.match.url}
/>
<div className="col-12 col-lg-6 col-md-8 m-auto">
{this.loginResetForm()}
</div>
</div>
);
}
loginResetForm() {
return (
<form onSubmit={linkEvent(this, this.handlePasswordReset)}>
<h5>
{capitalizeFirstLetter(I18NextService.i18n.t("forgot_password"))}
</h5>
<div className="form-group row">
<label className="col-form-label">
{I18NextService.i18n.t("no_password_reset")}
</label>
</div>
<div className="form-group row mt-2">
<label
className="col-sm-2 col-form-label"
htmlFor="login-reset-email"
>
{I18NextService.i18n.t("email")}
</label>
<div className="col-sm-10">
<input
type="text"
className="form-control"
id="login-reset-email"
value={this.state.form.email}
onInput={linkEvent(this, this.handleEmailInputChange)}
autoComplete="email"
required
minLength={3}
/>
</div>
</div>
<div className="form-group row mt-3">
<div className="col-sm-10">
<button
type="button"
onClick={linkEvent(this, this.handlePasswordReset)}
className="btn btn-secondary"
disabled={
!validEmail(this.state.form.email) || this.state.form.loading
}
>
{this.state.form.loading ? (
<Spinner />
) : (
I18NextService.i18n.t("reset_password")
)}
</button>
</div>
</div>
</form>
);
}
handleEmailInputChange(i: LoginReset, event: any) {
i.setState(s => ((s.form.email = event.target.value.trim()), s));
}
async handlePasswordReset(i: LoginReset, event: any) {
event.preventDefault();
const email = i.state.form.email;
if (email && validEmail(email)) {
i.setState(s => ((s.form.loading = true), s));
const res = await HttpService.client.passwordReset({ email });
if (res.state == "success") {
toast(I18NextService.i18n.t("reset_password_mail_sent"));
i.context.router.history.push("/login");
}
i.setState(s => ((s.form.loading = false), s));
}
}
}

View file

@ -1,7 +1,7 @@
import { myAuth, setIsoData } from "@utils/app";
import { isBrowser } from "@utils/browser";
import { validEmail } from "@utils/helpers";
import { Component, linkEvent } from "inferno";
import { NavLink } from "inferno-router";
import { GetSiteResponse, LoginResponse } from "lemmy-js-client";
import { I18NextService, UserService } from "../../services";
import { HttpService, RequestState } from "../../services/HttpService";
@ -105,18 +105,12 @@ export class Login extends Component<any, State> {
required
maxLength={60}
/>
<button
type="button"
onClick={linkEvent(this, this.handlePasswordReset)}
className="btn p-0 btn-link d-inline-block float-right text-muted small fw-bold pointer-events not-allowed"
disabled={
!!this.state.form.username_or_email &&
!validEmail(this.state.form.username_or_email)
}
title={I18NextService.i18n.t("no_password_reset")}
<NavLink
className="btn p-0 btn-link d-inline-block float-right text-muted small font-weight-bold pointer-events not-allowed"
to="/login_reset"
>
{I18NextService.i18n.t("forgot_password")}
</button>
</NavLink>
</div>
</div>
{this.state.showTotp && (
@ -214,15 +208,4 @@ export class Login extends Component<any, State> {
i.state.form.password = event.target.value;
i.setState(i.state);
}
async handlePasswordReset(i: Login, event: any) {
event.preventDefault();
const email = i.state.form.username_or_email;
if (email) {
const res = await HttpService.client.passwordReset({ email });
if (res.state == "success") {
toast(I18NextService.i18n.t("reset_password_mail_sent"));
}
}
}
}

View file

@ -140,7 +140,10 @@ export class Signup extends Component<any, State> {
registerForm() {
const siteView = this.state.siteRes.site_view;
return (
<form onSubmit={linkEvent(this, this.handleRegisterSubmit)}>
<form
className="was-validated"
onSubmit={linkEvent(this, this.handleRegisterSubmit)}
>
<h5>{this.titleName(siteView)}</h5>
{this.isLemmyMl && (

View file

@ -71,7 +71,7 @@ export class TaglineForm extends Component<TaglineFormProps, TaglineFormState> {
data-tippy-content={I18NextService.i18n.t("edit")}
aria-label={I18NextService.i18n.t("edit")}
>
<Icon icon="edit" classes={`icon-inline`} />
<Icon icon="edit" classes="icon-inline" />
</button>
<button
@ -83,7 +83,7 @@ export class TaglineForm extends Component<TaglineFormProps, TaglineFormState> {
data-tippy-content={I18NextService.i18n.t("delete")}
aria-label={I18NextService.i18n.t("delete")}
>
<Icon icon="trash" classes={`icon-inline text-danger`} />
<Icon icon="trash" classes="icon-inline text-danger" />
</button>
</td>
</tr>

View file

@ -10,7 +10,7 @@ export class CakeDay extends Component<CakeDayProps, any> {
render() {
return (
<div
className={`cake-day mx-2 d-inline-block unselectable pointer`}
className="cake-day mx-2 d-inline-block unselectable pointer"
data-tippy-content={this.cakeDayTippy()}
>
<Icon icon="cake" classes="icon-inline" />

View file

@ -11,6 +11,7 @@ import {
setIsoData,
updatePersonBlock,
} from "@utils/app";
import { capitalizeFirstLetter } from "@utils/helpers";
import { RouteDataResponse } from "@utils/types";
import { Component, linkEvent } from "inferno";
import {
@ -243,7 +244,9 @@ export class Inbox extends Component<any, InboxState> {
{this.state.markAllAsReadRes.state == "loading" ? (
<Spinner />
) : (
I18NextService.i18n.t("mark_all_as_read")
capitalizeFirstLetter(
I18NextService.i18n.t("mark_all_as_read")
)
)}
</button>
)}

View file

@ -205,6 +205,7 @@ export class Profile extends Component<
this.handleSavePost = this.handleSavePost.bind(this);
this.handlePurgePost = this.handlePurgePost.bind(this);
this.handleFeaturePost = this.handleFeaturePost.bind(this);
this.handleModBanSubmit = this.handleModBanSubmit.bind(this);
// Only fetch the data if coming from another route
if (FirstLoadService.isFirstLoad) {
@ -647,12 +648,12 @@ export class Profile extends Component<
value={this.state.banReason}
onInput={linkEvent(this, this.handleModBanReasonChange)}
/>
<label className="col-form-label" htmlFor={`mod-ban-expires`}>
<label className="col-form-label" htmlFor="mod-ban-expires">
{I18NextService.i18n.t("expires")}
</label>
<input
type="number"
id={`mod-ban-expires`}
id="mod-ban-expires"
className="form-control me-2"
placeholder={I18NextService.i18n.t("number_of_days")}
value={this.state.banExpireDays}
@ -987,6 +988,7 @@ export class Profile extends Component<
s.personRes.data.comments
.filter(c => c.creator.id == banRes.data.person_view.person.id)
.forEach(c => (c.creator.banned = banRes.data.banned));
s.personRes.data.person_view.person.banned = banRes.data.banned;
}
return s;
});

View file

@ -489,26 +489,13 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
this.postLink
)}
</h5>
{(url && isImage(url)) ||
(post.thumbnail_url && (
<button
className="btn btn-sm text-monospace text-muted d-inline-block"
data-tippy-content={I18NextService.i18n.t("expand_here")}
onClick={linkEvent(this, this.handleImageExpandClick)}
>
<Icon
icon={
!this.state.imageExpanded ? "plus-square" : "minus-square"
}
classes="icon-inline"
/>
</button>
))}
{post.removed && (
<small className="ms-2 badge text-bg-secondary">
{I18NextService.i18n.t("removed")}
</small>
)}
{post.deleted && (
<small
className="unselectable pointer ms-2 text-muted fst-italic"
@ -517,6 +504,7 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
<Icon icon="trash" classes="icon-inline text-danger" />
</small>
)}
{post.locked && (
<small
className="unselectable pointer ms-2 text-muted fst-italic"
@ -525,6 +513,7 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
<Icon icon="lock" classes="icon-inline text-danger" />
</small>
)}
{post.featured_community && (
<small
className="unselectable pointer ms-2 text-muted fst-italic"
@ -536,6 +525,7 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
<Icon icon="pin" classes="icon-inline text-primary" />
</small>
)}
{post.featured_local && (
<small
className="unselectable pointer ms-2 text-muted fst-italic"
@ -545,6 +535,7 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
<Icon icon="pin" classes="icon-inline text-secondary" />
</small>
)}
{post.nsfw && (
<small className="ms-2 badge text-bg-danger">
{I18NextService.i18n.t("nsfw")}
@ -989,6 +980,121 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
);
}
get modBanFromCommunityButton() {
return (
<button
className="btn btn-link btn-animate text-muted py-0"
onClick={linkEvent(this, this.handleModBanFromCommunityShow)}
aria-label={I18NextService.i18n.t("ban_from_community")}
>
{I18NextService.i18n.t("ban_from_community")}
</button>
);
}
get modUnbanFromCommunityButton() {
return (
<button
className="btn btn-link btn-animate text-muted py-0"
onClick={linkEvent(this, this.handleModBanFromCommunitySubmit)}
aria-label={I18NextService.i18n.t("unban")}
>
{this.state.banLoading ? <Spinner /> : I18NextService.i18n.t("unban")}
</button>
);
}
get addModToCommunityButton() {
return (
<button
className="btn btn-link btn-animate text-muted py-0"
onClick={linkEvent(this, this.handleAddModToCommunity)}
aria-label={
this.creatorIsMod_
? I18NextService.i18n.t("remove_as_mod")
: I18NextService.i18n.t("appoint_as_mod")
}
>
{this.state.addModLoading ? (
<Spinner />
) : this.creatorIsMod_ ? (
I18NextService.i18n.t("remove_as_mod")
) : (
I18NextService.i18n.t("appoint_as_mod")
)}
</button>
);
}
get modBanButton() {
return (
<button
className="btn btn-link btn-animate text-muted py-0"
onClick={linkEvent(this, this.handleModBanShow)}
aria-label={I18NextService.i18n.t("ban_from_site")}
>
{I18NextService.i18n.t("ban_from_site")}
</button>
);
}
get modUnbanButton() {
return (
<button
className="btn btn-link btn-animate text-muted py-0"
onClick={linkEvent(this, this.handleModBanSubmit)}
aria-label={I18NextService.i18n.t("unban_from_site")}
>
{this.state.banLoading ? (
<Spinner />
) : (
I18NextService.i18n.t("unban_from_site")
)}
</button>
);
}
get purgePersonButton() {
return (
<button
className="btn btn-link btn-animate text-muted py-0"
onClick={linkEvent(this, this.handlePurgePersonShow)}
aria-label={I18NextService.i18n.t("purge_user")}
>
{I18NextService.i18n.t("purge_user")}
</button>
);
}
get purgePostButton() {
return (
<button
className="btn btn-link btn-animate text-muted py-0"
onClick={linkEvent(this, this.handlePurgePostShow)}
aria-label={I18NextService.i18n.t("purge_post")}
>
{I18NextService.i18n.t("purge_post")}
</button>
);
}
get toggleAdminButton() {
return (
<button
className="btn btn-link btn-animate text-muted py-0"
onClick={linkEvent(this, this.handleAddAdmin)}
>
{this.state.addAdminLoading ? (
<Spinner />
) : this.creatorIsAdmin_ ? (
I18NextService.i18n.t("remove_as_admin")
) : (
I18NextService.i18n.t("appoint_as_admin")
)}
</button>
);
}
get modRemoveButton() {
const removed = this.postView.post.removed;
return (
@ -1023,54 +1129,14 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
{this.canMod_ && (
<>
{!this.creatorIsMod_ &&
(!post_view.creator_banned_from_community ? (
<button
className="btn btn-link btn-animate text-muted py-0"
onClick={linkEvent(
this,
this.handleModBanFromCommunityShow
)}
aria-label={I18NextService.i18n.t("ban_from_community")}
>
{I18NextService.i18n.t("ban_from_community")}
</button>
) : (
<button
className="btn btn-link btn-animate text-muted py-0"
onClick={linkEvent(
this,
this.handleModBanFromCommunitySubmit
)}
aria-label={I18NextService.i18n.t("unban")}
>
{this.state.banLoading ? (
<Spinner />
) : (
I18NextService.i18n.t("unban")
)}
</button>
))}
{!post_view.creator_banned_from_community && (
<button
className="btn btn-link btn-animate text-muted py-0"
onClick={linkEvent(this, this.handleAddModToCommunity)}
aria-label={
this.creatorIsMod_
? I18NextService.i18n.t("remove_as_mod")
: I18NextService.i18n.t("appoint_as_mod")
}
>
{this.state.addModLoading ? (
<Spinner />
) : this.creatorIsMod_ ? (
I18NextService.i18n.t("remove_as_mod")
) : (
I18NextService.i18n.t("appoint_as_mod")
)}
</button>
)}
(!post_view.creator_banned_from_community
? this.modBanFromCommunityButton
: this.modUnbanFromCommunityButton)}
{!post_view.creator_banned_from_community &&
this.addModToCommunityButton}
</>
)}
{/* Community creators and admins can transfer community to another mod */}
{(amCommunityCreator(post_view.creator.id, this.props.moderators) ||
this.canAdmin_) &&
@ -1122,62 +1188,16 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
<>
{!this.creatorIsAdmin_ && (
<>
{!isBanned(post_view.creator) ? (
<button
className="btn btn-link btn-animate text-muted py-0"
onClick={linkEvent(this, this.handleModBanShow)}
aria-label={I18NextService.i18n.t("ban_from_site")}
>
{I18NextService.i18n.t("ban_from_site")}
</button>
) : (
<button
className="btn btn-link btn-animate text-muted py-0"
onClick={linkEvent(this, this.handleModBanSubmit)}
aria-label={I18NextService.i18n.t("unban_from_site")}
>
{this.state.banLoading ? (
<Spinner />
) : (
I18NextService.i18n.t("unban_from_site")
)}
</button>
)}
<button
className="btn btn-link btn-animate text-muted py-0"
onClick={linkEvent(this, this.handlePurgePersonShow)}
aria-label={I18NextService.i18n.t("purge_user")}
>
{I18NextService.i18n.t("purge_user")}
</button>
<button
className="btn btn-link btn-animate text-muted py-0"
onClick={linkEvent(this, this.handlePurgePostShow)}
aria-label={I18NextService.i18n.t("purge_post")}
>
{I18NextService.i18n.t("purge_post")}
</button>
{!isBanned(post_view.creator)
? this.modBanButton
: this.modUnbanButton}
{this.purgePersonButton}
{this.purgePostButton}
</>
)}
{!isBanned(post_view.creator) && post_view.creator.local && (
<button
className="btn btn-link btn-animate text-muted py-0"
onClick={linkEvent(this, this.handleAddAdmin)}
aria-label={
this.creatorIsAdmin_
? I18NextService.i18n.t("remove_as_admin")
: I18NextService.i18n.t("appoint_as_admin")
}
>
{this.state.addAdminLoading ? (
<Spinner />
) : this.creatorIsAdmin_ ? (
I18NextService.i18n.t("remove_as_admin")
) : (
I18NextService.i18n.t("appoint_as_admin")
)}
</button>
)}
{!isBanned(post_view.creator) &&
post_view.creator.local &&
this.toggleAdminButton}
</>
)}
</div>
@ -1242,12 +1262,12 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
value={this.state.banReason}
onInput={linkEvent(this, this.handleModBanReasonChange)}
/>
<label className="col-form-label" htmlFor={`mod-ban-expires`}>
<label className="col-form-label" htmlFor="mod-ban-expires">
{I18NextService.i18n.t("expires")}
</label>
<input
type="number"
id={`mod-ban-expires`}
id="mod-ban-expires"
className="form-control me-2"
placeholder={I18NextService.i18n.t("number_of_days")}
value={this.state.banExpireDays}

View file

@ -348,7 +348,7 @@ export class Post extends Component<any, PostState> {
const res = this.state.postRes.data;
return (
<div className="row">
<div className="col-12 col-md-8 mb-3">
<main className="col-12 col-md-8 mb-3">
<HtmlTags
title={this.documentTitle}
path={this.context.router.route.match.url}
@ -415,8 +415,10 @@ export class Post extends Component<any, PostState> {
this.commentsTree()}
{this.state.commentViewType == CommentViewType.Flat &&
this.commentsFlat()}
</div>
<div className="d-none d-md-block col-md-4">{this.sidebar()}</div>
</main>
<aside className="d-none d-md-block col-md-4">
{this.sidebar()}
</aside>
</div>
);
}

View file

@ -7,6 +7,7 @@ import { Home } from "./components/home/home";
import { Instances } from "./components/home/instances";
import { Legal } from "./components/home/legal";
import { Login } from "./components/home/login";
import { LoginReset } from "./components/home/login-reset";
import { Setup } from "./components/home/setup";
import { Signup } from "./components/home/signup";
import { Modlog } from "./components/modlog";
@ -38,6 +39,10 @@ export const routes: IRoutePropsWithFetch<Record<string, any>>[] = [
path: `/login`,
component: Login,
},
{
path: `/login_reset`,
component: LoginReset,
},
{
path: `/signup`,
component: Signup,