262 lines
4.1 KiB
SCSS
262 lines
4.1 KiB
SCSS
@import '../../../../styles/design-tokens';
|
|
|
|
// Постоянная боковая панель (всегда открыта). Раскладку колонок задаёт корень;
|
|
// здесь — только внутреннее оформление панели.
|
|
.panel {
|
|
display: flex;
|
|
flex-direction: column;
|
|
height: 100%;
|
|
background: $white;
|
|
border: 1px solid $gray-200;
|
|
border-radius: $r-lg;
|
|
box-shadow: $sh-1;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: $sp-2;
|
|
padding: $sp-4 $sp-5;
|
|
border-bottom: 1px solid $gray-200;
|
|
}
|
|
|
|
.collapseToggle {
|
|
flex-shrink: 0;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 26px;
|
|
height: 26px;
|
|
padding: 0;
|
|
border: 1px solid $gray-300;
|
|
border-radius: $r-sm;
|
|
background: $white;
|
|
color: $navy-700;
|
|
cursor: pointer;
|
|
transition: .16s;
|
|
|
|
&:hover {
|
|
border-color: $gold-400;
|
|
color: $gold-600;
|
|
}
|
|
}
|
|
|
|
.panelCollapsed {
|
|
align-items: center;
|
|
padding: $sp-3 0;
|
|
}
|
|
|
|
.title {
|
|
font-family: $font-serif;
|
|
font-size: 18px;
|
|
color: $navy-900;
|
|
}
|
|
|
|
.searchWrap {
|
|
padding: $sp-3 $sp-5 0;
|
|
}
|
|
|
|
.search {
|
|
width: 100%;
|
|
padding: 8px 12px;
|
|
border: 1px solid $gray-300;
|
|
border-radius: $r-sm;
|
|
background: $white;
|
|
font-family: $font-sans;
|
|
font-size: $fs-sm;
|
|
color: $gray-900;
|
|
transition: .18s;
|
|
|
|
@include input-focus-gold;
|
|
|
|
&::placeholder {
|
|
color: $gray-400;
|
|
}
|
|
}
|
|
|
|
.body {
|
|
flex: 1;
|
|
overflow-y: auto;
|
|
padding: $sp-5;
|
|
font-size: $fs-sm;
|
|
}
|
|
|
|
.empty,
|
|
.error {
|
|
color: $gray-500;
|
|
}
|
|
|
|
.error {
|
|
color: $red-500;
|
|
}
|
|
|
|
.section + .section {
|
|
margin-top: $sp-6;
|
|
padding-top: $sp-6;
|
|
border-top: 1px solid $gray-200;
|
|
}
|
|
|
|
.sectionTitle {
|
|
font-family: $font-sans;
|
|
font-size: $fs-caption;
|
|
font-weight: 600;
|
|
color: $gray-500;
|
|
text-transform: uppercase;
|
|
letter-spacing: .04em;
|
|
margin-bottom: $sp-4;
|
|
}
|
|
|
|
.pager {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
margin-top: $sp-3;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.pagerBtn {
|
|
min-width: 24px;
|
|
height: 24px;
|
|
padding: 0 6px;
|
|
border: 1px solid $gray-200;
|
|
border-radius: $r-sm;
|
|
background: $white;
|
|
color: $gray-700;
|
|
font-family: $font-sans;
|
|
font-size: $fs-caption;
|
|
cursor: pointer;
|
|
transition: .16s;
|
|
|
|
&:hover:not(:disabled) {
|
|
border-color: $gold-400;
|
|
color: $gold-600;
|
|
}
|
|
|
|
&:disabled {
|
|
opacity: .4;
|
|
cursor: default;
|
|
}
|
|
}
|
|
|
|
.pagerBtnActive {
|
|
background: $navy-800;
|
|
border-color: $navy-800;
|
|
color: $white;
|
|
|
|
&:hover {
|
|
border-color: $navy-800 !important;
|
|
color: $white !important;
|
|
}
|
|
}
|
|
|
|
.pagerEllipsis {
|
|
color: $gray-400;
|
|
font-size: $fs-caption;
|
|
padding: 0 2px;
|
|
}
|
|
|
|
.list {
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: $sp-2;
|
|
}
|
|
|
|
.item {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: $sp-2;
|
|
padding: $sp-2 $sp-3;
|
|
border: 1px solid $gray-200;
|
|
border-radius: $r-sm;
|
|
background: $gray-50;
|
|
text-decoration: none;
|
|
transition: .16s;
|
|
|
|
&:hover {
|
|
border-color: $gold-400;
|
|
background: $gold-50;
|
|
}
|
|
}
|
|
|
|
.itemMain {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 2px;
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.itemType {
|
|
color: $gold-600;
|
|
font-size: $fs-caption;
|
|
font-weight: 600;
|
|
text-transform: uppercase;
|
|
letter-spacing: .03em;
|
|
}
|
|
|
|
.itemTitle {
|
|
color: $gray-900;
|
|
font-size: $fs-sm;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.itemAuthor {
|
|
color: $gray-500;
|
|
font-size: $fs-caption;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.itemDate {
|
|
color: $gray-400;
|
|
font-size: $fs-caption;
|
|
}
|
|
|
|
.status {
|
|
flex-shrink: 0;
|
|
padding: 2px 8px;
|
|
border-radius: $r-full;
|
|
font-size: $fs-caption;
|
|
font-weight: 500;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.statusDraft {
|
|
background: $gray-100;
|
|
color: $gray-700;
|
|
}
|
|
|
|
.statusOnApproval {
|
|
background: $gold-100;
|
|
color: $gold-600;
|
|
}
|
|
|
|
.statusApproved {
|
|
background: $green-50;
|
|
color: $green-600;
|
|
}
|
|
|
|
.statusRejected {
|
|
background: $red-50;
|
|
color: $red-500;
|
|
}
|
|
|
|
.statusReturned {
|
|
background: $blue-50;
|
|
color: $blue-600;
|
|
}
|
|
|
|
.statusDefault {
|
|
background: $gray-100;
|
|
color: $gray-500;
|
|
}
|