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": { "env": {
"browser": true "browser": true
}, },
"plugins": ["@typescript-eslint", "jsx-a11y"], "plugins": ["@typescript-eslint", "jsx-a11y", "prettier"],
"extends": [ "extends": [
"eslint:recommended", "eslint:recommended",
"plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/recommended",
@ -41,6 +41,7 @@
"no-var": 0, "no-var": 0,
"prefer-const": 1, "prefer-const": 1,
"prefer-rest-params": 0, "prefer-rest-params": 0,
"prettier/prettier": "error",
"quote-props": 0, "quote-props": 0,
"unicorn/filename-case": 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", $font-family-sans-serif: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI",
Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji",
"Segoe UI Emoji", "Segoe UI Symbol"; "Segoe UI Emoji", "Segoe UI Symbol";
$font-size-base: 0.9375rem;
$h1-font-size: 3rem; $h1-font-size: 3rem;
$h2-font-size: 2.5rem; $h2-font-size: 2.5rem;
$h3-font-size: 2rem; $h3-font-size: 2rem;

View file

@ -1,5 +1,6 @@
$link-decoration: none; $link-decoration: none;
$min-contrast-ratio: 3; $min-contrast-ratio: 3;
$font-size-base: 0.875rem;
$container-max-widths: ( $container-max-widths: (
lg: 1140px, 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-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-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-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-font-weight: 400;
--bs-body-line-height: 1.5; --bs-body-line-height: 1.5;
--bs-body-color: #dee2e6; --bs-body-color: #dee2e6;
@ -247,20 +247,20 @@ h3, .h3 {
} }
h4, .h4 { h4, .h4 {
font-size: calc(1.265625rem + 0.1875vw); font-size: calc(1.25625rem + 0.075vw);
} }
@media (min-width: 1200px) { @media (min-width: 1200px) {
h4, .h4 { h4, .h4 {
font-size: 1.40625rem; font-size: 1.3125rem;
} }
} }
h5, .h5 { h5, .h5 {
font-size: 1.171875rem; font-size: 1.09375rem;
} }
h6, .h6 { h6, .h6 {
font-size: 0.9375rem; font-size: 0.875rem;
} }
p { p {
@ -586,7 +586,7 @@ progress {
} }
.lead { .lead {
font-size: 1.171875rem; font-size: 1.09375rem;
font-weight: 300; font-weight: 300;
} }
@ -680,7 +680,7 @@ progress {
.blockquote { .blockquote {
margin-bottom: 1rem; margin-bottom: 1rem;
font-size: 1.171875rem; font-size: 1.09375rem;
} }
.blockquote > :last-child { .blockquote > :last-child {
margin-bottom: 0; margin-bottom: 0;
@ -2063,13 +2063,13 @@ progress {
.col-form-label-lg { .col-form-label-lg {
padding-top: calc(0.5rem + var(--bs-border-width)); padding-top: calc(0.5rem + var(--bs-border-width));
padding-bottom: 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 { .col-form-label-sm {
padding-top: calc(0.25rem + var(--bs-border-width)); padding-top: calc(0.25rem + var(--bs-border-width));
padding-bottom: 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 { .form-text {
@ -2082,7 +2082,7 @@ progress {
display: block; display: block;
width: 100%; width: 100%;
padding: 0.375rem 0.75rem; padding: 0.375rem 0.75rem;
font-size: 0.9375rem; font-size: 0.875rem;
font-weight: 400; font-weight: 400;
line-height: 1.5; line-height: 1.5;
color: #fff; color: #fff;
@ -2173,7 +2173,7 @@ progress {
.form-control-sm { .form-control-sm {
min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
padding: 0.25rem 0.5rem; padding: 0.25rem 0.5rem;
font-size: 0.8203125rem; font-size: 0.765625rem;
border-radius: var(--bs-border-radius-sm); border-radius: var(--bs-border-radius-sm);
} }
.form-control-sm::file-selector-button { .form-control-sm::file-selector-button {
@ -2185,7 +2185,7 @@ progress {
.form-control-lg { .form-control-lg {
min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
padding: 0.5rem 1rem; padding: 0.5rem 1rem;
font-size: 1.171875rem; font-size: 1.09375rem;
border-radius: var(--bs-border-radius-lg); border-radius: var(--bs-border-radius-lg);
} }
.form-control-lg::file-selector-button { .form-control-lg::file-selector-button {
@ -2232,7 +2232,7 @@ textarea.form-control-lg {
display: block; display: block;
width: 100%; width: 100%;
padding: 0.375rem 2.25rem 0.375rem 0.75rem; padding: 0.375rem 2.25rem 0.375rem 0.75rem;
font-size: 0.9375rem; font-size: 0.875rem;
font-weight: 400; font-weight: 400;
line-height: 1.5; line-height: 1.5;
color: #fff; color: #fff;
@ -2272,7 +2272,7 @@ textarea.form-control-lg {
padding-top: 0.25rem; padding-top: 0.25rem;
padding-bottom: 0.25rem; padding-bottom: 0.25rem;
padding-left: 0.5rem; padding-left: 0.5rem;
font-size: 0.8203125rem; font-size: 0.765625rem;
border-radius: var(--bs-border-radius-sm); border-radius: var(--bs-border-radius-sm);
} }
@ -2280,7 +2280,7 @@ textarea.form-control-lg {
padding-top: 0.5rem; padding-top: 0.5rem;
padding-bottom: 0.5rem; padding-bottom: 0.5rem;
padding-left: 1rem; padding-left: 1rem;
font-size: 1.171875rem; font-size: 1.09375rem;
border-radius: var(--bs-border-radius-lg); border-radius: var(--bs-border-radius-lg);
} }
@ -2290,7 +2290,7 @@ textarea.form-control-lg {
.form-check { .form-check {
display: block; display: block;
min-height: 1.40625rem; min-height: 1.3125rem;
padding-left: 1.5em; padding-left: 1.5em;
margin-bottom: 0.125rem; margin-bottom: 0.125rem;
} }
@ -2618,7 +2618,7 @@ textarea.form-control-lg {
display: flex; display: flex;
align-items: center; align-items: center;
padding: 0.375rem 0.75rem; padding: 0.375rem 0.75rem;
font-size: 0.9375rem; font-size: 0.875rem;
font-weight: 400; font-weight: 400;
line-height: 1.5; line-height: 1.5;
color: #adb5bd; color: #adb5bd;
@ -2634,7 +2634,7 @@ textarea.form-control-lg {
.input-group-lg > .input-group-text, .input-group-lg > .input-group-text,
.input-group-lg > .btn { .input-group-lg > .btn {
padding: 0.5rem 1rem; padding: 0.5rem 1rem;
font-size: 1.171875rem; font-size: 1.09375rem;
border-radius: var(--bs-border-radius-lg); border-radius: var(--bs-border-radius-lg);
} }
@ -2643,7 +2643,7 @@ textarea.form-control-lg {
.input-group-sm > .input-group-text, .input-group-sm > .input-group-text,
.input-group-sm > .btn { .input-group-sm > .btn {
padding: 0.25rem 0.5rem; padding: 0.25rem 0.5rem;
font-size: 0.8203125rem; font-size: 0.765625rem;
border-radius: var(--bs-border-radius-sm); border-radius: var(--bs-border-radius-sm);
} }
@ -2693,7 +2693,7 @@ textarea.form-control-lg {
max-width: 100%; max-width: 100%;
padding: 0.25rem 0.5rem; padding: 0.25rem 0.5rem;
margin-top: 0.1rem; margin-top: 0.1rem;
font-size: 0.8203125rem; font-size: 0.765625rem;
color: #fff; color: #fff;
background-color: var(--bs-success); background-color: var(--bs-success);
border-radius: var(--bs-border-radius); border-radius: var(--bs-border-radius);
@ -2783,7 +2783,7 @@ textarea.form-control-lg {
max-width: 100%; max-width: 100%;
padding: 0.25rem 0.5rem; padding: 0.25rem 0.5rem;
margin-top: 0.1rem; margin-top: 0.1rem;
font-size: 0.8203125rem; font-size: 0.765625rem;
color: #fff; color: #fff;
background-color: var(--bs-danger); background-color: var(--bs-danger);
border-radius: var(--bs-border-radius); border-radius: var(--bs-border-radius);
@ -2861,7 +2861,7 @@ textarea.form-control-lg {
--bs-btn-padding-x: 0.75rem; --bs-btn-padding-x: 0.75rem;
--bs-btn-padding-y: 0.375rem; --bs-btn-padding-y: 0.375rem;
--bs-btn-font-family: ; --bs-btn-font-family: ;
--bs-btn-font-size: 0.9375rem; --bs-btn-font-size: 0.875rem;
--bs-btn-font-weight: 400; --bs-btn-font-weight: 400;
--bs-btn-line-height: 1.5; --bs-btn-line-height: 1.5;
--bs-btn-color: var(--bs-body-color); --bs-btn-color: var(--bs-body-color);
@ -3229,14 +3229,14 @@ textarea.form-control-lg {
.btn-lg, .btn-group-lg > .btn { .btn-lg, .btn-group-lg > .btn {
--bs-btn-padding-y: 0.5rem; --bs-btn-padding-y: 0.5rem;
--bs-btn-padding-x: 1rem; --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); --bs-btn-border-radius: var(--bs-border-radius-lg);
} }
.btn-sm, .btn-group-sm > .btn { .btn-sm, .btn-group-sm > .btn {
--bs-btn-padding-y: 0.25rem; --bs-btn-padding-y: 0.25rem;
--bs-btn-padding-x: 0.5rem; --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); --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-x: 0;
--bs-dropdown-padding-y: 0.5rem; --bs-dropdown-padding-y: 0.5rem;
--bs-dropdown-spacer: 0.125rem; --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-color: var(--bs-body-color);
--bs-dropdown-bg: #222; --bs-dropdown-bg: #222;
--bs-dropdown-border-color: #444; --bs-dropdown-border-color: #444;
@ -3567,7 +3567,7 @@ textarea.form-control-lg {
display: block; display: block;
padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x); padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);
margin-bottom: 0; margin-bottom: 0;
font-size: 0.8203125rem; font-size: 0.765625rem;
color: var(--bs-dropdown-header-color); color: var(--bs-dropdown-header-color);
white-space: nowrap; white-space: nowrap;
} }
@ -3844,15 +3844,15 @@ textarea.form-control-lg {
--bs-navbar-hover-color: #fff; --bs-navbar-hover-color: #fff;
--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3); --bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);
--bs-navbar-active-color: #fff; --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-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-color: #fff;
--bs-navbar-brand-hover-color: #fff; --bs-navbar-brand-hover-color: #fff;
--bs-navbar-nav-link-padding-x: 0.5rem; --bs-navbar-nav-link-padding-x: 0.5rem;
--bs-navbar-toggler-padding-y: 0.25rem; --bs-navbar-toggler-padding-y: 0.25rem;
--bs-navbar-toggler-padding-x: 0.75rem; --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-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-color: rgba(34, 34, 34, 0.1);
--bs-navbar-toggler-border-radius: var(--bs-border-radius); --bs-navbar-toggler-border-radius: var(--bs-border-radius);
@ -4477,7 +4477,7 @@ textarea.form-control-lg {
align-items: center; align-items: center;
width: 100%; width: 100%;
padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x); 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); color: var(--bs-accordion-btn-color);
text-align: left; text-align: left;
background-color: var(--bs-accordion-btn-bg); background-color: var(--bs-accordion-btn-bg);
@ -4621,7 +4621,7 @@ textarea.form-control-lg {
.pagination { .pagination {
--bs-pagination-padding-x: 0.75rem; --bs-pagination-padding-x: 0.75rem;
--bs-pagination-padding-y: 0.375rem; --bs-pagination-padding-y: 0.375rem;
--bs-pagination-font-size: 0.9375rem; --bs-pagination-font-size: 0.875rem;
--bs-pagination-color: #fff; --bs-pagination-color: #fff;
--bs-pagination-bg: #00bc8c; --bs-pagination-bg: #00bc8c;
--bs-pagination-border-width: 0; --bs-pagination-border-width: 0;
@ -4700,14 +4700,14 @@ textarea.form-control-lg {
.pagination-lg { .pagination-lg {
--bs-pagination-padding-x: 1.5rem; --bs-pagination-padding-x: 1.5rem;
--bs-pagination-padding-y: 0.75rem; --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); --bs-pagination-border-radius: var(--bs-border-radius-lg);
} }
.pagination-sm { .pagination-sm {
--bs-pagination-padding-x: 0.5rem; --bs-pagination-padding-x: 0.5rem;
--bs-pagination-padding-y: 0.25rem; --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); --bs-pagination-border-radius: var(--bs-border-radius-sm);
} }
@ -4841,7 +4841,7 @@ textarea.form-control-lg {
.progress, .progress,
.progress-stacked { .progress-stacked {
--bs-progress-height: 1rem; --bs-progress-height: 1rem;
--bs-progress-font-size: 0.703125rem; --bs-progress-font-size: 0.65625rem;
--bs-progress-bg: #444; --bs-progress-bg: #444;
--bs-progress-border-radius: var(--bs-border-radius); --bs-progress-border-radius: var(--bs-border-radius);
--bs-progress-box-shadow: var(--bs-box-shadow-inset); --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-x: 0.5rem;
--bs-tooltip-padding-y: 0.25rem; --bs-tooltip-padding-y: 0.25rem;
--bs-tooltip-margin: ; --bs-tooltip-margin: ;
--bs-tooltip-font-size: 0.8203125rem; --bs-tooltip-font-size: 0.765625rem;
--bs-tooltip-color: var(--bs-body-bg); --bs-tooltip-color: var(--bs-body-bg);
--bs-tooltip-bg: var(--bs-emphasis-color); --bs-tooltip-bg: var(--bs-emphasis-color);
--bs-tooltip-border-radius: var(--bs-border-radius); --bs-tooltip-border-radius: var(--bs-border-radius);
@ -5744,7 +5744,7 @@ textarea.form-control-lg {
.popover { .popover {
--bs-popover-zindex: 1070; --bs-popover-zindex: 1070;
--bs-popover-max-width: 276px; --bs-popover-max-width: 276px;
--bs-popover-font-size: 0.8203125rem; --bs-popover-font-size: 0.765625rem;
--bs-popover-bg: #303030; --bs-popover-bg: #303030;
--bs-popover-border-width: var(--bs-border-width); --bs-popover-border-width: var(--bs-border-width);
--bs-popover-border-color: var(--bs-border-color-translucent); --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-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
--bs-popover-header-padding-x: 1rem; --bs-popover-header-padding-x: 1rem;
--bs-popover-header-padding-y: 0.5rem; --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-color: inherit;
--bs-popover-header-bg: #444; --bs-popover-header-bg: #444;
--bs-popover-body-padding-x: 1rem; --bs-popover-body-padding-x: 1rem;
@ -8227,15 +8227,15 @@ textarea.form-control-lg {
} }
.fs-4 { .fs-4 {
font-size: calc(1.265625rem + 0.1875vw) !important; font-size: calc(1.25625rem + 0.075vw) !important;
} }
.fs-5 { .fs-5 {
font-size: 1.171875rem !important; font-size: 1.09375rem !important;
} }
.fs-6 { .fs-6 {
font-size: 0.9375rem !important; font-size: 0.875rem !important;
} }
.fst-italic { .fst-italic {
@ -11787,7 +11787,7 @@ textarea.form-control-lg {
font-size: 2rem !important; font-size: 2rem !important;
} }
.fs-4 { .fs-4 {
font-size: 1.40625rem !important; font-size: 1.3125rem !important;
} }
} }
@media print { @media print {

View file

@ -75,7 +75,7 @@
--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; --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-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-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-font-weight: 400;
--bs-body-line-height: 1.5; --bs-body-line-height: 1.5;
--bs-body-color: #dee2e6; --bs-body-color: #dee2e6;
@ -247,20 +247,20 @@ h3, .h3 {
} }
h4, .h4 { h4, .h4 {
font-size: calc(1.265625rem + 0.1875vw); font-size: calc(1.25625rem + 0.075vw);
} }
@media (min-width: 1200px) { @media (min-width: 1200px) {
h4, .h4 { h4, .h4 {
font-size: 1.40625rem; font-size: 1.3125rem;
} }
} }
h5, .h5 { h5, .h5 {
font-size: 1.171875rem; font-size: 1.09375rem;
} }
h6, .h6 { h6, .h6 {
font-size: 0.9375rem; font-size: 0.875rem;
} }
p { p {
@ -586,7 +586,7 @@ progress {
} }
.lead { .lead {
font-size: 1.171875rem; font-size: 1.09375rem;
font-weight: 300; font-weight: 300;
} }
@ -680,7 +680,7 @@ progress {
.blockquote { .blockquote {
margin-bottom: 1rem; margin-bottom: 1rem;
font-size: 1.171875rem; font-size: 1.09375rem;
} }
.blockquote > :last-child { .blockquote > :last-child {
margin-bottom: 0; margin-bottom: 0;
@ -2063,13 +2063,13 @@ progress {
.col-form-label-lg { .col-form-label-lg {
padding-top: calc(0.5rem + var(--bs-border-width)); padding-top: calc(0.5rem + var(--bs-border-width));
padding-bottom: 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 { .col-form-label-sm {
padding-top: calc(0.25rem + var(--bs-border-width)); padding-top: calc(0.25rem + var(--bs-border-width));
padding-bottom: 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 { .form-text {
@ -2082,7 +2082,7 @@ progress {
display: block; display: block;
width: 100%; width: 100%;
padding: 0.375rem 0.75rem; padding: 0.375rem 0.75rem;
font-size: 0.9375rem; font-size: 0.875rem;
font-weight: 400; font-weight: 400;
line-height: 1.5; line-height: 1.5;
color: #fff; color: #fff;
@ -2173,7 +2173,7 @@ progress {
.form-control-sm { .form-control-sm {
min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
padding: 0.25rem 0.5rem; padding: 0.25rem 0.5rem;
font-size: 0.8203125rem; font-size: 0.765625rem;
border-radius: var(--bs-border-radius-sm); border-radius: var(--bs-border-radius-sm);
} }
.form-control-sm::file-selector-button { .form-control-sm::file-selector-button {
@ -2185,7 +2185,7 @@ progress {
.form-control-lg { .form-control-lg {
min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
padding: 0.5rem 1rem; padding: 0.5rem 1rem;
font-size: 1.171875rem; font-size: 1.09375rem;
border-radius: var(--bs-border-radius-lg); border-radius: var(--bs-border-radius-lg);
} }
.form-control-lg::file-selector-button { .form-control-lg::file-selector-button {
@ -2232,7 +2232,7 @@ textarea.form-control-lg {
display: block; display: block;
width: 100%; width: 100%;
padding: 0.375rem 2.25rem 0.375rem 0.75rem; padding: 0.375rem 2.25rem 0.375rem 0.75rem;
font-size: 0.9375rem; font-size: 0.875rem;
font-weight: 400; font-weight: 400;
line-height: 1.5; line-height: 1.5;
color: #fff; color: #fff;
@ -2272,7 +2272,7 @@ textarea.form-control-lg {
padding-top: 0.25rem; padding-top: 0.25rem;
padding-bottom: 0.25rem; padding-bottom: 0.25rem;
padding-left: 0.5rem; padding-left: 0.5rem;
font-size: 0.8203125rem; font-size: 0.765625rem;
border-radius: var(--bs-border-radius-sm); border-radius: var(--bs-border-radius-sm);
} }
@ -2280,7 +2280,7 @@ textarea.form-control-lg {
padding-top: 0.5rem; padding-top: 0.5rem;
padding-bottom: 0.5rem; padding-bottom: 0.5rem;
padding-left: 1rem; padding-left: 1rem;
font-size: 1.171875rem; font-size: 1.09375rem;
border-radius: var(--bs-border-radius-lg); border-radius: var(--bs-border-radius-lg);
} }
@ -2290,7 +2290,7 @@ textarea.form-control-lg {
.form-check { .form-check {
display: block; display: block;
min-height: 1.40625rem; min-height: 1.3125rem;
padding-left: 1.5em; padding-left: 1.5em;
margin-bottom: 0.125rem; margin-bottom: 0.125rem;
} }
@ -2618,7 +2618,7 @@ textarea.form-control-lg {
display: flex; display: flex;
align-items: center; align-items: center;
padding: 0.375rem 0.75rem; padding: 0.375rem 0.75rem;
font-size: 0.9375rem; font-size: 0.875rem;
font-weight: 400; font-weight: 400;
line-height: 1.5; line-height: 1.5;
color: #adb5bd; color: #adb5bd;
@ -2634,7 +2634,7 @@ textarea.form-control-lg {
.input-group-lg > .input-group-text, .input-group-lg > .input-group-text,
.input-group-lg > .btn { .input-group-lg > .btn {
padding: 0.5rem 1rem; padding: 0.5rem 1rem;
font-size: 1.171875rem; font-size: 1.09375rem;
border-radius: var(--bs-border-radius-lg); border-radius: var(--bs-border-radius-lg);
} }
@ -2643,7 +2643,7 @@ textarea.form-control-lg {
.input-group-sm > .input-group-text, .input-group-sm > .input-group-text,
.input-group-sm > .btn { .input-group-sm > .btn {
padding: 0.25rem 0.5rem; padding: 0.25rem 0.5rem;
font-size: 0.8203125rem; font-size: 0.765625rem;
border-radius: var(--bs-border-radius-sm); border-radius: var(--bs-border-radius-sm);
} }
@ -2693,7 +2693,7 @@ textarea.form-control-lg {
max-width: 100%; max-width: 100%;
padding: 0.25rem 0.5rem; padding: 0.25rem 0.5rem;
margin-top: 0.1rem; margin-top: 0.1rem;
font-size: 0.8203125rem; font-size: 0.765625rem;
color: #fff; color: #fff;
background-color: var(--bs-success); background-color: var(--bs-success);
border-radius: var(--bs-border-radius); border-radius: var(--bs-border-radius);
@ -2783,7 +2783,7 @@ textarea.form-control-lg {
max-width: 100%; max-width: 100%;
padding: 0.25rem 0.5rem; padding: 0.25rem 0.5rem;
margin-top: 0.1rem; margin-top: 0.1rem;
font-size: 0.8203125rem; font-size: 0.765625rem;
color: #fff; color: #fff;
background-color: var(--bs-danger); background-color: var(--bs-danger);
border-radius: var(--bs-border-radius); border-radius: var(--bs-border-radius);
@ -2861,7 +2861,7 @@ textarea.form-control-lg {
--bs-btn-padding-x: 0.75rem; --bs-btn-padding-x: 0.75rem;
--bs-btn-padding-y: 0.375rem; --bs-btn-padding-y: 0.375rem;
--bs-btn-font-family: ; --bs-btn-font-family: ;
--bs-btn-font-size: 0.9375rem; --bs-btn-font-size: 0.875rem;
--bs-btn-font-weight: 400; --bs-btn-font-weight: 400;
--bs-btn-line-height: 1.5; --bs-btn-line-height: 1.5;
--bs-btn-color: var(--bs-body-color); --bs-btn-color: var(--bs-body-color);
@ -3229,14 +3229,14 @@ textarea.form-control-lg {
.btn-lg, .btn-group-lg > .btn { .btn-lg, .btn-group-lg > .btn {
--bs-btn-padding-y: 0.5rem; --bs-btn-padding-y: 0.5rem;
--bs-btn-padding-x: 1rem; --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); --bs-btn-border-radius: var(--bs-border-radius-lg);
} }
.btn-sm, .btn-group-sm > .btn { .btn-sm, .btn-group-sm > .btn {
--bs-btn-padding-y: 0.25rem; --bs-btn-padding-y: 0.25rem;
--bs-btn-padding-x: 0.5rem; --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); --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-x: 0;
--bs-dropdown-padding-y: 0.5rem; --bs-dropdown-padding-y: 0.5rem;
--bs-dropdown-spacer: 0.125rem; --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-color: var(--bs-body-color);
--bs-dropdown-bg: #222; --bs-dropdown-bg: #222;
--bs-dropdown-border-color: #444; --bs-dropdown-border-color: #444;
@ -3567,7 +3567,7 @@ textarea.form-control-lg {
display: block; display: block;
padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x); padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);
margin-bottom: 0; margin-bottom: 0;
font-size: 0.8203125rem; font-size: 0.765625rem;
color: var(--bs-dropdown-header-color); color: var(--bs-dropdown-header-color);
white-space: nowrap; white-space: nowrap;
} }
@ -3844,15 +3844,15 @@ textarea.form-control-lg {
--bs-navbar-hover-color: #fff; --bs-navbar-hover-color: #fff;
--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3); --bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);
--bs-navbar-active-color: #fff; --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-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-color: #fff;
--bs-navbar-brand-hover-color: #fff; --bs-navbar-brand-hover-color: #fff;
--bs-navbar-nav-link-padding-x: 0.5rem; --bs-navbar-nav-link-padding-x: 0.5rem;
--bs-navbar-toggler-padding-y: 0.25rem; --bs-navbar-toggler-padding-y: 0.25rem;
--bs-navbar-toggler-padding-x: 0.75rem; --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-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-color: rgba(34, 34, 34, 0.1);
--bs-navbar-toggler-border-radius: var(--bs-border-radius); --bs-navbar-toggler-border-radius: var(--bs-border-radius);
@ -4477,7 +4477,7 @@ textarea.form-control-lg {
align-items: center; align-items: center;
width: 100%; width: 100%;
padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x); 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); color: var(--bs-accordion-btn-color);
text-align: left; text-align: left;
background-color: var(--bs-accordion-btn-bg); background-color: var(--bs-accordion-btn-bg);
@ -4621,7 +4621,7 @@ textarea.form-control-lg {
.pagination { .pagination {
--bs-pagination-padding-x: 0.75rem; --bs-pagination-padding-x: 0.75rem;
--bs-pagination-padding-y: 0.375rem; --bs-pagination-padding-y: 0.375rem;
--bs-pagination-font-size: 0.9375rem; --bs-pagination-font-size: 0.875rem;
--bs-pagination-color: #fff; --bs-pagination-color: #fff;
--bs-pagination-bg: #00bc8c; --bs-pagination-bg: #00bc8c;
--bs-pagination-border-width: 0; --bs-pagination-border-width: 0;
@ -4700,14 +4700,14 @@ textarea.form-control-lg {
.pagination-lg { .pagination-lg {
--bs-pagination-padding-x: 1.5rem; --bs-pagination-padding-x: 1.5rem;
--bs-pagination-padding-y: 0.75rem; --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); --bs-pagination-border-radius: var(--bs-border-radius-lg);
} }
.pagination-sm { .pagination-sm {
--bs-pagination-padding-x: 0.5rem; --bs-pagination-padding-x: 0.5rem;
--bs-pagination-padding-y: 0.25rem; --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); --bs-pagination-border-radius: var(--bs-border-radius-sm);
} }
@ -4841,7 +4841,7 @@ textarea.form-control-lg {
.progress, .progress,
.progress-stacked { .progress-stacked {
--bs-progress-height: 1rem; --bs-progress-height: 1rem;
--bs-progress-font-size: 0.703125rem; --bs-progress-font-size: 0.65625rem;
--bs-progress-bg: #444; --bs-progress-bg: #444;
--bs-progress-border-radius: var(--bs-border-radius); --bs-progress-border-radius: var(--bs-border-radius);
--bs-progress-box-shadow: var(--bs-box-shadow-inset); --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-x: 0.5rem;
--bs-tooltip-padding-y: 0.25rem; --bs-tooltip-padding-y: 0.25rem;
--bs-tooltip-margin: ; --bs-tooltip-margin: ;
--bs-tooltip-font-size: 0.8203125rem; --bs-tooltip-font-size: 0.765625rem;
--bs-tooltip-color: var(--bs-body-bg); --bs-tooltip-color: var(--bs-body-bg);
--bs-tooltip-bg: var(--bs-emphasis-color); --bs-tooltip-bg: var(--bs-emphasis-color);
--bs-tooltip-border-radius: var(--bs-border-radius); --bs-tooltip-border-radius: var(--bs-border-radius);
@ -5744,7 +5744,7 @@ textarea.form-control-lg {
.popover { .popover {
--bs-popover-zindex: 1070; --bs-popover-zindex: 1070;
--bs-popover-max-width: 276px; --bs-popover-max-width: 276px;
--bs-popover-font-size: 0.8203125rem; --bs-popover-font-size: 0.765625rem;
--bs-popover-bg: #303030; --bs-popover-bg: #303030;
--bs-popover-border-width: var(--bs-border-width); --bs-popover-border-width: var(--bs-border-width);
--bs-popover-border-color: var(--bs-border-color-translucent); --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-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
--bs-popover-header-padding-x: 1rem; --bs-popover-header-padding-x: 1rem;
--bs-popover-header-padding-y: 0.5rem; --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-color: inherit;
--bs-popover-header-bg: #444; --bs-popover-header-bg: #444;
--bs-popover-body-padding-x: 1rem; --bs-popover-body-padding-x: 1rem;
@ -8227,15 +8227,15 @@ textarea.form-control-lg {
} }
.fs-4 { .fs-4 {
font-size: calc(1.265625rem + 0.1875vw) !important; font-size: calc(1.25625rem + 0.075vw) !important;
} }
.fs-5 { .fs-5 {
font-size: 1.171875rem !important; font-size: 1.09375rem !important;
} }
.fs-6 { .fs-6 {
font-size: 0.9375rem !important; font-size: 0.875rem !important;
} }
.fst-italic { .fst-italic {
@ -11787,7 +11787,7 @@ textarea.form-control-lg {
font-size: 2rem !important; font-size: 2rem !important;
} }
.fs-4 { .fs-4 {
font-size: 1.40625rem !important; font-size: 1.3125rem !important;
} }
} }
@media print { @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-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-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-family: var(--bs-font-sans-serif);
--bs-body-font-size: 1rem; --bs-body-font-size: 0.875rem;
--bs-body-font-weight: 400; --bs-body-font-weight: 400;
--bs-body-line-height: 1.5; --bs-body-line-height: 1.5;
--bs-body-color: #495057; --bs-body-color: #495057;
@ -220,47 +220,47 @@ h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {
} }
h1, .h1 { h1, .h1 {
font-size: calc(1.375rem + 1.5vw); font-size: calc(1.34375rem + 1.125vw);
} }
@media (min-width: 1200px) { @media (min-width: 1200px) {
h1, .h1 { h1, .h1 {
font-size: 2.5rem; font-size: 2.1875rem;
} }
} }
h2, .h2 { 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); font-size: calc(1.3rem + 0.6vw);
} }
@media (min-width: 1200px) { @media (min-width: 1200px) {
h3, .h3 { h2, .h2 {
font-size: 1.75rem; 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 { h4, .h4 {
font-size: calc(1.275rem + 0.3vw); font-size: calc(1.25625rem + 0.075vw);
} }
@media (min-width: 1200px) { @media (min-width: 1200px) {
h4, .h4 { h4, .h4 {
font-size: 1.5rem; font-size: 1.3125rem;
} }
} }
h5, .h5 { h5, .h5 {
font-size: 1.25rem; font-size: 1.09375rem;
} }
h6, .h6 { h6, .h6 {
font-size: 1rem; font-size: 0.875rem;
} }
p { p {
@ -585,7 +585,7 @@ progress {
} }
.lead { .lead {
font-size: 1.25rem; font-size: 1.09375rem;
font-weight: 300; font-weight: 300;
} }
@ -679,7 +679,7 @@ progress {
.blockquote { .blockquote {
margin-bottom: 1rem; margin-bottom: 1rem;
font-size: 1.25rem; font-size: 1.09375rem;
} }
.blockquote > :last-child { .blockquote > :last-child {
margin-bottom: 0; margin-bottom: 0;
@ -2062,13 +2062,13 @@ progress {
.col-form-label-lg { .col-form-label-lg {
padding-top: calc(0.5rem + var(--bs-border-width)); padding-top: calc(0.5rem + var(--bs-border-width));
padding-bottom: 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 { .col-form-label-sm {
padding-top: calc(0.25rem + var(--bs-border-width)); padding-top: calc(0.25rem + var(--bs-border-width));
padding-bottom: 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 { .form-text {
@ -2081,7 +2081,7 @@ progress {
display: block; display: block;
width: 100%; width: 100%;
padding: 0.375rem 0.75rem; padding: 0.375rem 0.75rem;
font-size: 1rem; font-size: 0.875rem;
font-weight: 400; font-weight: 400;
line-height: 1.5; line-height: 1.5;
color: var(--bs-body-color); color: var(--bs-body-color);
@ -2172,7 +2172,7 @@ progress {
.form-control-sm { .form-control-sm {
min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
padding: 0.25rem 0.5rem; padding: 0.25rem 0.5rem;
font-size: 0.875rem; font-size: 0.765625rem;
border-radius: var(--bs-border-radius-sm); border-radius: var(--bs-border-radius-sm);
} }
.form-control-sm::file-selector-button { .form-control-sm::file-selector-button {
@ -2184,7 +2184,7 @@ progress {
.form-control-lg { .form-control-lg {
min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
padding: 0.5rem 1rem; padding: 0.5rem 1rem;
font-size: 1.25rem; font-size: 1.09375rem;
border-radius: var(--bs-border-radius-lg); border-radius: var(--bs-border-radius-lg);
} }
.form-control-lg::file-selector-button { .form-control-lg::file-selector-button {
@ -2231,7 +2231,7 @@ textarea.form-control-lg {
display: block; display: block;
width: 100%; width: 100%;
padding: 0.375rem 2.25rem 0.375rem 0.75rem; padding: 0.375rem 2.25rem 0.375rem 0.75rem;
font-size: 1rem; font-size: 0.875rem;
font-weight: 400; font-weight: 400;
line-height: 1.5; line-height: 1.5;
color: var(--bs-body-color); color: var(--bs-body-color);
@ -2271,7 +2271,7 @@ textarea.form-control-lg {
padding-top: 0.25rem; padding-top: 0.25rem;
padding-bottom: 0.25rem; padding-bottom: 0.25rem;
padding-left: 0.5rem; padding-left: 0.5rem;
font-size: 0.875rem; font-size: 0.765625rem;
border-radius: var(--bs-border-radius-sm); border-radius: var(--bs-border-radius-sm);
} }
@ -2279,7 +2279,7 @@ textarea.form-control-lg {
padding-top: 0.5rem; padding-top: 0.5rem;
padding-bottom: 0.5rem; padding-bottom: 0.5rem;
padding-left: 1rem; padding-left: 1rem;
font-size: 1.25rem; font-size: 1.09375rem;
border-radius: var(--bs-border-radius-lg); border-radius: var(--bs-border-radius-lg);
} }
@ -2289,7 +2289,7 @@ textarea.form-control-lg {
.form-check { .form-check {
display: block; display: block;
min-height: 1.5rem; min-height: 1.3125rem;
padding-left: 1.5em; padding-left: 1.5em;
margin-bottom: 0.125rem; margin-bottom: 0.125rem;
} }
@ -2617,7 +2617,7 @@ textarea.form-control-lg {
display: flex; display: flex;
align-items: center; align-items: center;
padding: 0.375rem 0.75rem; padding: 0.375rem 0.75rem;
font-size: 1rem; font-size: 0.875rem;
font-weight: 400; font-weight: 400;
line-height: 1.5; line-height: 1.5;
color: var(--bs-body-color); color: var(--bs-body-color);
@ -2633,7 +2633,7 @@ textarea.form-control-lg {
.input-group-lg > .input-group-text, .input-group-lg > .input-group-text,
.input-group-lg > .btn { .input-group-lg > .btn {
padding: 0.5rem 1rem; padding: 0.5rem 1rem;
font-size: 1.25rem; font-size: 1.09375rem;
border-radius: var(--bs-border-radius-lg); border-radius: var(--bs-border-radius-lg);
} }
@ -2642,7 +2642,7 @@ textarea.form-control-lg {
.input-group-sm > .input-group-text, .input-group-sm > .input-group-text,
.input-group-sm > .btn { .input-group-sm > .btn {
padding: 0.25rem 0.5rem; padding: 0.25rem 0.5rem;
font-size: 0.875rem; font-size: 0.765625rem;
border-radius: var(--bs-border-radius-sm); border-radius: var(--bs-border-radius-sm);
} }
@ -2692,7 +2692,7 @@ textarea.form-control-lg {
max-width: 100%; max-width: 100%;
padding: 0.25rem 0.5rem; padding: 0.25rem 0.5rem;
margin-top: 0.1rem; margin-top: 0.1rem;
font-size: 0.875rem; font-size: 0.765625rem;
color: #fff; color: #fff;
background-color: var(--bs-success); background-color: var(--bs-success);
border-radius: var(--bs-border-radius); border-radius: var(--bs-border-radius);
@ -2782,7 +2782,7 @@ textarea.form-control-lg {
max-width: 100%; max-width: 100%;
padding: 0.25rem 0.5rem; padding: 0.25rem 0.5rem;
margin-top: 0.1rem; margin-top: 0.1rem;
font-size: 0.875rem; font-size: 0.765625rem;
color: #fff; color: #fff;
background-color: var(--bs-danger); background-color: var(--bs-danger);
border-radius: var(--bs-border-radius); border-radius: var(--bs-border-radius);
@ -2860,7 +2860,7 @@ textarea.form-control-lg {
--bs-btn-padding-x: 0.75rem; --bs-btn-padding-x: 0.75rem;
--bs-btn-padding-y: 0.375rem; --bs-btn-padding-y: 0.375rem;
--bs-btn-font-family: ; --bs-btn-font-family: ;
--bs-btn-font-size: 1rem; --bs-btn-font-size: 0.875rem;
--bs-btn-font-weight: 400; --bs-btn-font-weight: 400;
--bs-btn-line-height: 1.5; --bs-btn-line-height: 1.5;
--bs-btn-color: var(--bs-body-color); --bs-btn-color: var(--bs-body-color);
@ -3228,14 +3228,14 @@ textarea.form-control-lg {
.btn-lg, .btn-group-lg > .btn { .btn-lg, .btn-group-lg > .btn {
--bs-btn-padding-y: 0.5rem; --bs-btn-padding-y: 0.5rem;
--bs-btn-padding-x: 1rem; --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); --bs-btn-border-radius: var(--bs-border-radius-lg);
} }
.btn-sm, .btn-group-sm > .btn { .btn-sm, .btn-group-sm > .btn {
--bs-btn-padding-y: 0.25rem; --bs-btn-padding-y: 0.25rem;
--bs-btn-padding-x: 0.5rem; --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); --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-x: 0;
--bs-dropdown-padding-y: 0.5rem; --bs-dropdown-padding-y: 0.5rem;
--bs-dropdown-spacer: 0.125rem; --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-color: var(--bs-body-color);
--bs-dropdown-bg: var(--bs-body-bg); --bs-dropdown-bg: var(--bs-body-bg);
--bs-dropdown-border-color: var(--bs-border-color-translucent); --bs-dropdown-border-color: var(--bs-border-color-translucent);
@ -3566,7 +3566,7 @@ textarea.form-control-lg {
display: block; display: block;
padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x); padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);
margin-bottom: 0; margin-bottom: 0;
font-size: 0.875rem; font-size: 0.765625rem;
color: var(--bs-dropdown-header-color); color: var(--bs-dropdown-header-color);
white-space: nowrap; white-space: nowrap;
} }
@ -3843,15 +3843,15 @@ textarea.form-control-lg {
--bs-navbar-hover-color: #212529; --bs-navbar-hover-color: #212529;
--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3); --bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);
--bs-navbar-active-color: #212529; --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-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-color: #212529;
--bs-navbar-brand-hover-color: #212529; --bs-navbar-brand-hover-color: #212529;
--bs-navbar-nav-link-padding-x: 0.5rem; --bs-navbar-nav-link-padding-x: 0.5rem;
--bs-navbar-toggler-padding-y: 0.25rem; --bs-navbar-toggler-padding-y: 0.25rem;
--bs-navbar-toggler-padding-x: 0.75rem; --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-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-color: rgba(var(--bs-emphasis-color-rgb), 0.15);
--bs-navbar-toggler-border-radius: var(--bs-border-radius); --bs-navbar-toggler-border-radius: var(--bs-border-radius);
@ -4476,7 +4476,7 @@ textarea.form-control-lg {
align-items: center; align-items: center;
width: 100%; width: 100%;
padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x); 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); color: var(--bs-accordion-btn-color);
text-align: left; text-align: left;
background-color: var(--bs-accordion-btn-bg); background-color: var(--bs-accordion-btn-bg);
@ -4620,7 +4620,7 @@ textarea.form-control-lg {
.pagination { .pagination {
--bs-pagination-padding-x: 0.75rem; --bs-pagination-padding-x: 0.75rem;
--bs-pagination-padding-y: 0.375rem; --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-color: var(--bs-link-color);
--bs-pagination-bg: var(--bs-body-bg); --bs-pagination-bg: var(--bs-body-bg);
--bs-pagination-border-width: var(--bs-border-width); --bs-pagination-border-width: var(--bs-border-width);
@ -4699,14 +4699,14 @@ textarea.form-control-lg {
.pagination-lg { .pagination-lg {
--bs-pagination-padding-x: 1.5rem; --bs-pagination-padding-x: 1.5rem;
--bs-pagination-padding-y: 0.75rem; --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); --bs-pagination-border-radius: var(--bs-border-radius-lg);
} }
.pagination-sm { .pagination-sm {
--bs-pagination-padding-x: 0.5rem; --bs-pagination-padding-x: 0.5rem;
--bs-pagination-padding-y: 0.25rem; --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); --bs-pagination-border-radius: var(--bs-border-radius-sm);
} }
@ -4840,7 +4840,7 @@ textarea.form-control-lg {
.progress, .progress,
.progress-stacked { .progress-stacked {
--bs-progress-height: 1rem; --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-bg: var(--bs-secondary-bg);
--bs-progress-border-radius: var(--bs-border-radius); --bs-progress-border-radius: var(--bs-border-radius);
--bs-progress-box-shadow: var(--bs-box-shadow-inset); --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-x: 0.5rem;
--bs-tooltip-padding-y: 0.25rem; --bs-tooltip-padding-y: 0.25rem;
--bs-tooltip-margin: ; --bs-tooltip-margin: ;
--bs-tooltip-font-size: 0.875rem; --bs-tooltip-font-size: 0.765625rem;
--bs-tooltip-color: var(--bs-body-bg); --bs-tooltip-color: var(--bs-body-bg);
--bs-tooltip-bg: var(--bs-emphasis-color); --bs-tooltip-bg: var(--bs-emphasis-color);
--bs-tooltip-border-radius: var(--bs-border-radius); --bs-tooltip-border-radius: var(--bs-border-radius);
@ -5743,7 +5743,7 @@ textarea.form-control-lg {
.popover { .popover {
--bs-popover-zindex: 1070; --bs-popover-zindex: 1070;
--bs-popover-max-width: 276px; --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-bg: var(--bs-body-bg);
--bs-popover-border-width: var(--bs-border-width); --bs-popover-border-width: var(--bs-border-width);
--bs-popover-border-color: var(--bs-border-color-translucent); --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-box-shadow: 0 0.5rem 1rem rgba(34, 34, 34, 0.15);
--bs-popover-header-padding-x: 1rem; --bs-popover-header-padding-x: 1rem;
--bs-popover-header-padding-y: 0.5rem; --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-color: #495057;
--bs-popover-header-bg: var(--bs-secondary-bg); --bs-popover-header-bg: var(--bs-secondary-bg);
--bs-popover-body-padding-x: 1rem; --bs-popover-body-padding-x: 1rem;
@ -8214,27 +8214,27 @@ textarea.form-control-lg {
} }
.fs-1 { .fs-1 {
font-size: calc(1.375rem + 1.5vw) !important; font-size: calc(1.34375rem + 1.125vw) !important;
} }
.fs-2 { .fs-2 {
font-size: calc(1.325rem + 0.9vw) !important;
}
.fs-3 {
font-size: calc(1.3rem + 0.6vw) !important; font-size: calc(1.3rem + 0.6vw) !important;
} }
.fs-3 {
font-size: calc(1.278125rem + 0.3375vw) !important;
}
.fs-4 { .fs-4 {
font-size: calc(1.275rem + 0.3vw) !important; font-size: calc(1.25625rem + 0.075vw) !important;
} }
.fs-5 { .fs-5 {
font-size: 1.25rem !important; font-size: 1.09375rem !important;
} }
.fs-6 { .fs-6 {
font-size: 1rem !important; font-size: 0.875rem !important;
} }
.fst-italic { .fst-italic {
@ -11777,16 +11777,16 @@ textarea.form-control-lg {
} }
@media (min-width: 1200px) { @media (min-width: 1200px) {
.fs-1 { .fs-1 {
font-size: 2.5rem !important; font-size: 2.1875rem !important;
} }
.fs-2 { .fs-2 {
font-size: 2rem !important;
}
.fs-3 {
font-size: 1.75rem !important; font-size: 1.75rem !important;
} }
.fs-3 {
font-size: 1.53125rem !important;
}
.fs-4 { .fs-4 {
font-size: 1.5rem !important; font-size: 1.3125rem !important;
} }
} }
@media print { @media print {

View file

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

View file

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

View file

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

View file

@ -312,7 +312,7 @@ export class CommentNode extends Component<CommentNodeProps, CommentNodeState> {
<PersonListing person={cv.creator} /> <PersonListing person={cv.creator} />
</span> </span>
{cv.comment.distinguished && ( {cv.comment.distinguished && (
<Icon icon="shield" inline classes={`text-danger me-2`} /> <Icon icon="shield" inline classes="text-danger me-2" />
)} )}
{this.isPostCreator && ( {this.isPostCreator && (
<div className="badge text-bg-light d-none d-sm-inline me-2"> <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() { render() {
return ( return (
<div> <>
<button <button
type="button" type="button"
className={`btn-animate btn py-0 px-1 ${ className={`btn-animate btn py-0 px-1 ${
@ -157,7 +157,7 @@ export class VoteButtonsCompact extends Component<
)} )}
</button> </button>
)} )}
</div> </>
); );
} }
} }
@ -174,7 +174,7 @@ export class VoteButtons extends Component<VoteButtonsProps, VoteButtonsState> {
render() { render() {
return ( return (
<div className={`vote-bar col-1 pe-0 small text-center`}> <div className="vote-bar col-1 pe-0 small text-center">
<button <button
type="button" type="button"
className={`btn-animate btn btn-link p-0 ${ className={`btn-animate btn btn-link p-0 ${
@ -193,7 +193,7 @@ export class VoteButtons extends Component<VoteButtonsProps, VoteButtonsState> {
</button> </button>
{showScores() ? ( {showScores() ? (
<div <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)} data-tippy-content={tippy(this.props.counts)}
> >
{numToSI(this.props.counts.score)} {numToSI(this.props.counts.score)}

View file

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

View file

@ -255,7 +255,7 @@ export class EmojiForm extends Component<EmojiFormProps, EmojiFormState> {
> >
<Icon <Icon
icon="trash" icon="trash"
classes={`icon-inline text-danger`} classes="icon-inline text-danger"
/> />
</button> </button>
</div> </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 { myAuth, setIsoData } from "@utils/app";
import { isBrowser } from "@utils/browser"; import { isBrowser } from "@utils/browser";
import { validEmail } from "@utils/helpers";
import { Component, linkEvent } from "inferno"; import { Component, linkEvent } from "inferno";
import { NavLink } from "inferno-router";
import { GetSiteResponse, LoginResponse } from "lemmy-js-client"; import { GetSiteResponse, LoginResponse } from "lemmy-js-client";
import { I18NextService, UserService } from "../../services"; import { I18NextService, UserService } from "../../services";
import { HttpService, RequestState } from "../../services/HttpService"; import { HttpService, RequestState } from "../../services/HttpService";
@ -105,18 +105,12 @@ export class Login extends Component<any, State> {
required required
maxLength={60} maxLength={60}
/> />
<button <NavLink
type="button" className="btn p-0 btn-link d-inline-block float-right text-muted small font-weight-bold pointer-events not-allowed"
onClick={linkEvent(this, this.handlePasswordReset)} to="/login_reset"
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")}
> >
{I18NextService.i18n.t("forgot_password")} {I18NextService.i18n.t("forgot_password")}
</button> </NavLink>
</div> </div>
</div> </div>
{this.state.showTotp && ( {this.state.showTotp && (
@ -214,15 +208,4 @@ export class Login extends Component<any, State> {
i.state.form.password = event.target.value; i.state.form.password = event.target.value;
i.setState(i.state); 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() { registerForm() {
const siteView = this.state.siteRes.site_view; const siteView = this.state.siteRes.site_view;
return ( return (
<form onSubmit={linkEvent(this, this.handleRegisterSubmit)}> <form
className="was-validated"
onSubmit={linkEvent(this, this.handleRegisterSubmit)}
>
<h5>{this.titleName(siteView)}</h5> <h5>{this.titleName(siteView)}</h5>
{this.isLemmyMl && ( {this.isLemmyMl && (

View file

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

View file

@ -10,7 +10,7 @@ export class CakeDay extends Component<CakeDayProps, any> {
render() { render() {
return ( return (
<div <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()} data-tippy-content={this.cakeDayTippy()}
> >
<Icon icon="cake" classes="icon-inline" /> <Icon icon="cake" classes="icon-inline" />

View file

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

View file

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

View file

@ -489,26 +489,13 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
this.postLink this.postLink
)} )}
</h5> </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 && ( {post.removed && (
<small className="ms-2 badge text-bg-secondary"> <small className="ms-2 badge text-bg-secondary">
{I18NextService.i18n.t("removed")} {I18NextService.i18n.t("removed")}
</small> </small>
)} )}
{post.deleted && ( {post.deleted && (
<small <small
className="unselectable pointer ms-2 text-muted fst-italic" 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" /> <Icon icon="trash" classes="icon-inline text-danger" />
</small> </small>
)} )}
{post.locked && ( {post.locked && (
<small <small
className="unselectable pointer ms-2 text-muted fst-italic" 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" /> <Icon icon="lock" classes="icon-inline text-danger" />
</small> </small>
)} )}
{post.featured_community && ( {post.featured_community && (
<small <small
className="unselectable pointer ms-2 text-muted fst-italic" 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" /> <Icon icon="pin" classes="icon-inline text-primary" />
</small> </small>
)} )}
{post.featured_local && ( {post.featured_local && (
<small <small
className="unselectable pointer ms-2 text-muted fst-italic" 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" /> <Icon icon="pin" classes="icon-inline text-secondary" />
</small> </small>
)} )}
{post.nsfw && ( {post.nsfw && (
<small className="ms-2 badge text-bg-danger"> <small className="ms-2 badge text-bg-danger">
{I18NextService.i18n.t("nsfw")} {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() { get modRemoveButton() {
const removed = this.postView.post.removed; const removed = this.postView.post.removed;
return ( return (
@ -1023,54 +1129,14 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
{this.canMod_ && ( {this.canMod_ && (
<> <>
{!this.creatorIsMod_ && {!this.creatorIsMod_ &&
(!post_view.creator_banned_from_community ? ( (!post_view.creator_banned_from_community
<button ? this.modBanFromCommunityButton
className="btn btn-link btn-animate text-muted py-0" : this.modUnbanFromCommunityButton)}
onClick={linkEvent( {!post_view.creator_banned_from_community &&
this, this.addModToCommunityButton}
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>
)}
</> </>
)} )}
{/* Community creators and admins can transfer community to another mod */} {/* Community creators and admins can transfer community to another mod */}
{(amCommunityCreator(post_view.creator.id, this.props.moderators) || {(amCommunityCreator(post_view.creator.id, this.props.moderators) ||
this.canAdmin_) && this.canAdmin_) &&
@ -1122,62 +1188,16 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
<> <>
{!this.creatorIsAdmin_ && ( {!this.creatorIsAdmin_ && (
<> <>
{!isBanned(post_view.creator) ? ( {!isBanned(post_view.creator)
<button ? this.modBanButton
className="btn btn-link btn-animate text-muted py-0" : this.modUnbanButton}
onClick={linkEvent(this, this.handleModBanShow)} {this.purgePersonButton}
aria-label={I18NextService.i18n.t("ban_from_site")} {this.purgePostButton}
>
{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) && post_view.creator.local && ( {!isBanned(post_view.creator) &&
<button post_view.creator.local &&
className="btn btn-link btn-animate text-muted py-0" this.toggleAdminButton}
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>
)}
</> </>
)} )}
</div> </div>
@ -1242,12 +1262,12 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
value={this.state.banReason} value={this.state.banReason}
onInput={linkEvent(this, this.handleModBanReasonChange)} 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")} {I18NextService.i18n.t("expires")}
</label> </label>
<input <input
type="number" type="number"
id={`mod-ban-expires`} id="mod-ban-expires"
className="form-control me-2" className="form-control me-2"
placeholder={I18NextService.i18n.t("number_of_days")} placeholder={I18NextService.i18n.t("number_of_days")}
value={this.state.banExpireDays} value={this.state.banExpireDays}

View file

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

View file

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