Release v2.5.6

This commit is contained in:
2026-08-05 19:38:16 +01:00
parent a8ef35b287
commit 9f831f04bc
161 changed files with 8487 additions and 1295 deletions
+459 -22
View File
@@ -259,6 +259,10 @@
opacity: 0.84;
}
.rbac-permissions-table tbody tr:last-child > * {
border-bottom-width: 0;
}
.template-designer-form--previewing .region-item [disabled],
.template-designer-form--previewing .template-details-card [disabled],
.template-designer-form--previewing .template-options-card [disabled],
@@ -270,15 +274,33 @@
position: relative;
}
.announcement-type-picker {
position: relative;
}
.announcement-icon-picker__toggle {
display: flex;
align-items: center;
gap: 0.75rem;
width: 100%;
min-height: calc(1.5em + 0.75rem + 2px);
min-height: calc(2.375rem + 2px);
padding: 0.375rem 0.75rem;
border: 1px solid var(--bs-border-color);
border-radius: 0.375rem;
border-radius: 0.875rem;
background: var(--bs-body-bg);
color: var(--bs-body-color);
text-align: left;
}
.announcement-type-picker__toggle {
display: flex;
align-items: center;
gap: 0.75rem;
width: 100%;
min-height: calc(2.375rem + 2px);
padding: 0.375rem 0.75rem;
border: 1px solid var(--bs-border-color);
border-radius: 0.875rem;
background: var(--bs-body-bg);
color: var(--bs-body-color);
text-align: left;
@@ -289,23 +311,73 @@
box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.25);
}
.announcement-type-picker__toggle:focus-visible {
outline: 0;
box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.25);
}
.announcement-icon-picker__toggle-icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 1.75rem;
height: 1.75rem;
border-radius: 0.5rem;
border-radius: 0.7rem;
background: rgba(var(--bs-primary-rgb), 0.1);
color: var(--bs-primary);
font-size: 1rem;
flex: 0 0 auto;
}
.announcement-icon-picker__toggle-label {
.announcement-type-picker__toggle-icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 1.75rem;
height: 1.75rem;
border-radius: 0.7rem;
background: rgba(var(--bs-primary-rgb), 0.1);
color: var(--bs-primary);
font-size: 1rem;
flex: 0 0 auto;
}
.announcement-icon-picker__toggle-content {
display: flex;
flex-direction: column;
gap: 0.1rem;
flex: 1 1 auto;
min-width: 0;
}
.announcement-type-picker__toggle-content {
display: flex;
flex-direction: column;
gap: 0.1rem;
flex: 1 1 auto;
min-width: 0;
}
.announcement-icon-picker__toggle-label {
font-weight: 600;
line-height: 1.1;
}
.announcement-type-picker__toggle-label {
font-weight: 600;
line-height: 1.1;
}
.announcement-icon-picker__toggle-hint {
color: var(--bs-secondary-color);
font-size: 0.78rem;
line-height: 1.1;
}
.announcement-type-picker__toggle-hint {
color: var(--bs-secondary-color);
font-size: 0.78rem;
line-height: 1.1;
}
.announcement-icon-picker__caret {
@@ -314,6 +386,12 @@
font-size: 0.8rem;
}
.announcement-type-picker__caret {
flex: 0 0 auto;
color: var(--bs-secondary-color);
font-size: 0.8rem;
}
.announcement-icon-picker__menu {
position: absolute;
z-index: 20;
@@ -329,6 +407,26 @@
box-shadow: 0 1rem 2rem rgba(15, 23, 42, 0.18);
}
.announcement-type-picker__menu {
position: absolute;
z-index: 20;
top: calc(100% + 0.5rem);
bottom: auto;
left: 0;
width: min(100%, 28rem);
max-width: calc(100vw - 1rem);
padding: 0.75rem;
border: 1px solid var(--bs-border-color);
border-radius: 1rem;
background: var(--bs-body-bg);
box-shadow: 0 1rem 2rem rgba(15, 23, 42, 0.18);
}
.announcement-type-picker__menu.is-open-above {
top: auto;
bottom: calc(100% + 0.5rem);
}
.announcement-icon-picker__menu.is-open-above {
top: auto;
bottom: calc(100% + 0.5rem);
@@ -350,6 +448,12 @@
gap: 0.5rem;
}
.announcement-type-picker__grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
gap: 0.5rem;
}
.announcement-icon-picker__option {
display: inline-flex;
align-items: center;
@@ -363,6 +467,20 @@
transition: transform 120ms ease, border-color 120ms ease, background-color 120ms ease, box-shadow 120ms ease;
}
.announcement-type-picker__option {
display: flex;
flex-direction: column;
align-items: stretch;
gap: 0.5rem;
padding: 0.5rem;
border: 1px solid var(--bs-border-color);
border-radius: 0.75rem;
background: var(--bs-body-bg);
color: var(--bs-body-color);
text-align: left;
transition: transform 120ms ease, border-color 120ms ease, background-color 120ms ease, box-shadow 120ms ease;
}
.announcement-icon-picker__option:hover,
.announcement-icon-picker__option:focus-visible {
border-color: rgba(var(--bs-primary-rgb), 0.7);
@@ -371,6 +489,14 @@
transform: translateY(-1px);
}
.announcement-type-picker__option:hover,
.announcement-type-picker__option:focus-visible {
border-color: rgba(var(--bs-primary-rgb), 0.7);
background: rgba(var(--bs-primary-rgb), 0.04);
box-shadow: 0 0 0 0.15rem rgba(var(--bs-primary-rgb), 0.15);
transform: translateY(-1px);
}
.announcement-icon-picker__option.is-selected {
border-color: var(--bs-primary);
background: rgba(var(--bs-primary-rgb), 0.12);
@@ -378,11 +504,154 @@
box-shadow: 0 0 0 0.15rem rgba(var(--bs-primary-rgb), 0.12);
}
.announcement-type-picker__option.is-selected {
border-color: var(--bs-primary);
box-shadow: 0 0 0 0.15rem rgba(var(--bs-primary-rgb), 0.12);
}
.announcement-icon-picker__option i {
font-size: 1.05rem;
line-height: 1;
}
.announcement-type-picker__option-icon {
display: flex;
align-items: center;
justify-content: center;
min-height: 2.5rem;
border-radius: 0.65rem;
background: rgba(var(--bs-primary-rgb), 0.1);
color: var(--bs-primary);
font-size: 1rem;
}
.announcement-type-picker__option-icon i {
line-height: 1;
}
.announcement-type-picker__label {
font-size: 0.8rem;
font-weight: 600;
line-height: 1.1;
text-align: center;
}
.announcement-screen-picker {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 0.5rem;
max-height: 18rem;
padding: 0.25rem;
overflow: auto;
}
.announcement-screen-actions {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
margin-bottom: 0.5rem;
}
.announcement-screen-action {
flex: 1 1 9rem;
}
.announcement-screen-option {
position: relative;
min-width: 0;
}
.announcement-screen-option > .btn-check {
position: absolute;
inset: 0;
margin: 0;
}
.announcement-screen-chip {
display: flex;
align-items: center;
justify-content: flex-start;
gap: 0.5rem;
width: 100%;
min-height: 2.5rem;
padding: 0.5rem 0.75rem;
border: 1px solid var(--bs-border-color);
border-radius: 0.875rem;
background: var(--bs-body-bg);
color: var(--bs-body-color);
cursor: pointer;
transition: transform 120ms ease, border-color 120ms ease, background-color 120ms ease, box-shadow 120ms ease;
}
.announcement-screen-chip:hover,
.announcement-screen-chip:focus-visible {
border-color: rgba(var(--bs-primary-rgb), 0.7);
background: rgba(var(--bs-primary-rgb), 0.04);
box-shadow: 0 0 0 0.15rem rgba(var(--bs-primary-rgb), 0.12);
transform: translateY(-1px);
}
.announcement-screen-option > .btn-check:checked + .announcement-screen-chip {
border-color: var(--bs-primary);
background: rgba(var(--bs-primary-rgb), 0.08);
box-shadow: 0 0 0 0.15rem rgba(var(--bs-primary-rgb), 0.12);
}
.announcement-screen-chip__check {
display: inline-flex;
align-items: center;
justify-content: center;
margin-left: auto;
width: 1.25rem;
height: 1.25rem;
border-radius: 999px;
background: rgba(var(--bs-primary-rgb), 0.1);
color: var(--bs-primary);
opacity: 0;
transform: scale(0.85);
transition: opacity 120ms ease, transform 120ms ease, background-color 120ms ease, color 120ms ease;
}
.announcement-screen-chip__check-icon {
font-size: 0.9rem;
line-height: 1;
}
.announcement-screen-option > .btn-check:checked + .announcement-screen-chip .announcement-screen-chip__check {
opacity: 1;
transform: scale(1);
}
.announcement-screen-chip__text {
display: block;
flex: 1 1 auto;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 0.875rem;
font-weight: 700;
line-height: 1.2;
}
@media (max-width: 576px) {
.announcement-screen-picker {
max-height: 16rem;
}
}
@media (max-width: 576px) {
.announcement-type-picker__menu {
width: calc(100vw - 2rem);
right: 0;
left: auto;
}
.announcement-type-picker__grid {
grid-template-columns: repeat(auto-fill, minmax(7rem, 1fr));
}
}
@media (max-width: 576px) {
.announcement-icon-picker__menu {
width: calc(100vw - 2rem);
@@ -1844,6 +2113,83 @@ html[data-bs-theme='dark'] .template-field-card .tox .tox-collection {
border-radius: var(--bs-border-radius);
}
.announcement-color-picker {
display: grid;
gap: 0.75rem;
}
.announcement-color-picker__grid {
display: grid;
grid-template-columns: repeat(8, minmax(0, 1fr));
gap: 0.375rem;
}
.announcement-color-picker__option {
display: flex;
flex-direction: column;
align-items: stretch;
gap: 0.375rem;
padding: 0.375rem;
border: 1px solid var(--bs-border-color);
border-radius: 0.75rem;
background: var(--bs-body-bg);
color: var(--bs-body-color);
text-align: left;
transition: transform 120ms ease, border-color 120ms ease, background-color 120ms ease, box-shadow 120ms ease;
}
.announcement-color-picker__option:hover,
.announcement-color-picker__option:focus-visible {
border-color: rgba(var(--bs-primary-rgb), 0.7);
background: rgba(var(--bs-primary-rgb), 0.04);
box-shadow: 0 0 0 0.15rem rgba(var(--bs-primary-rgb), 0.15);
transform: translateY(-1px);
}
.announcement-color-picker__option.is-selected {
border-color: var(--bs-primary);
box-shadow: 0 0 0 0.15rem rgba(var(--bs-primary-rgb), 0.12);
}
.announcement-color-picker__swatch {
display: flex;
align-items: center;
justify-content: center;
min-height: 2.5rem;
border-radius: 0.65rem;
font-size: 1rem;
}
.announcement-color-picker__check {
opacity: 0;
transform: scale(0.8);
transition: opacity 120ms ease, transform 120ms ease;
}
.announcement-color-picker__option.is-selected .announcement-color-picker__check {
opacity: 1;
transform: scale(1);
}
.announcement-color-picker__label {
font-size: 0.8rem;
font-weight: 600;
line-height: 1.1;
text-align: center;
}
@media (max-width: 1200px) {
.announcement-color-picker__grid {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
}
@media (max-width: 768px) {
.announcement-color-picker__grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
.announcement-icon-preview {
display: flex;
align-items: center;
@@ -1871,7 +2217,8 @@ html[data-bs-theme='dark'] .template-field-card .tox .tox-collection {
display: grid;
gap: 0.5rem;
padding-top: 0.25rem;
margin-bottom: 0.75rem;
padding-bottom: 0.5rem;
margin-bottom: 0;
}
.api-region-placeholder-title {
@@ -2220,6 +2567,50 @@ html[data-bs-theme='dark'] .template-field-card .tox .tox-collection {
flex: 1 1 0;
}
.schedule-day-grid .schedule-day-option {
position: relative;
display: flex;
flex: 1 1 0;
min-width: 0;
}
.schedule-day-grid .schedule-day-option > .btn-check {
position: absolute;
inset: 0;
margin: 0;
}
.schedule-day-grid .schedule-day-option > .schedule-day-button {
width: 100%;
border-radius: 0;
}
.schedule-day-grid .schedule-day-option:first-child > .schedule-day-button {
border-top-left-radius: var(--bs-btn-border-radius);
border-bottom-left-radius: var(--bs-btn-border-radius);
}
.schedule-day-grid .schedule-day-option:last-child > .schedule-day-button {
border-top-right-radius: var(--bs-btn-border-radius);
border-bottom-right-radius: var(--bs-btn-border-radius);
}
.schedule-day-grid .schedule-day-option + .schedule-day-option {
margin-left: -1px;
}
.schedule-day-grid .schedule-day-button.is-invalid {
color: var(--bs-danger);
border-color: var(--bs-danger);
background-color: rgba(var(--bs-danger-rgb), 0.08);
}
.schedule-day-grid .btn-check:checked + .schedule-day-button.is-invalid {
color: #fff;
border-color: var(--bs-danger);
background-color: var(--bs-danger);
}
.slide-schedule-dialog {
position: fixed;
top: 50%;
@@ -2283,11 +2674,9 @@ html[data-bs-theme='dark'] .template-field-card .tox .tox-collection {
overflow: hidden;
}
.slide-schedule-content .schedule-rule-card.collapsed-card > .card-body {
display: block !important;
padding: 0 !important;
max-height: 0;
overflow: hidden;
.slide-schedule-content .schedule-rule-card.collapsed-card > .card-body,
.slide-schedule-content .schedule-rule-card.collapsed-card > .card-footer {
display: none;
}
.slide-schedule-content .schedule-rule-card.collapsed-card .card-header {
@@ -2332,8 +2721,18 @@ td[data-label="Actions"] > div {
}
.playlist-duration-input {
width: 6rem;
min-width: 6rem;
width: 4rem !important;
min-width: 4rem !important;
flex: 0 0 4rem !important;
}
.playlist-duration-input-group {
display: inline-flex !important;
flex: 0 0 auto !important;
width: fit-content !important;
max-width: fit-content !important;
border-radius: var(--bs-border-radius-sm);
overflow: hidden;
}
.playlist-duration-input::-webkit-outer-spin-button,
@@ -2356,6 +2755,13 @@ td[data-label="Actions"] > div {
text-align: left;
}
.playlist-duration-prefix {
display: inline-flex;
align-items: center;
justify-content: center;
flex: 0 0 auto;
}
.playlist-use-video-duration {
white-space: nowrap;
}
@@ -2424,13 +2830,24 @@ table.table > :not(caption) > * > * {
.playlist-order-cell {
width: 1%;
white-space: nowrap;
vertical-align: top;
padding-top: 0 !important;
padding-bottom: 0 !important;
}
.playlist-order-cell-inner {
display: inline-flex;
display: flex;
align-items: center;
gap: 0.5rem;
width: 100%;
gap: 0.65rem;
}
.playlist-order-stepper {
display: inline-flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 0.02rem;
}
.playlist-drag-handle {
@@ -2438,26 +2855,46 @@ table.table > :not(caption) > * > * {
align-items: center;
justify-content: center;
width: 1.35rem;
height: 1.9rem;
height: 1.35rem;
line-height: 1;
cursor: grab;
cursor: grab !important;
text-decoration: none;
touch-action: none;
}
.playlist-drag-handle:hover,
.playlist-drag-handle:focus {
cursor: grab !important;
}
.playlist-drag-handle:active,
.playlist-drag-handle[aria-grabbed="true"] {
cursor: grabbing !important;
}
.playlist-drag-handle-icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 1.1rem;
height: 1.9rem;
height: 1.1rem;
font-size: 1rem;
line-height: 1;
}
.playlist-drag-handle-svg {
display: block;
width: 100%;
height: 100%;
fill: currentColor;
.playlist-order-move {
display: inline-flex;
align-items: center;
justify-content: center;
width: 1.15rem;
height: 1.15rem;
line-height: 1;
text-decoration: none;
}
.playlist-order-move:hover,
.playlist-order-move:focus {
text-decoration: none;
}
.playlist-drag-handle:active,