Files
request-portal/src/webparts/requestPortal/features/myRequests/MyRequestsPanel.module.scss
T
2026-08-04 15:38:05 +05:00

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;
}