Feat/SW-1549 map improvements * fix: imported new icon * refactor: rename component and set map handling to 'greedy' * fix: show cards for 3s after hover * refactor: update styles and added HotelPin component * fix: change from close to back icon * refactor: update to only use 1 state value for active pin and card * fix: add click handler when dialog is opened * fix: performance fixes for the dialog carousel * fix: added border * fix: clear timeout on mouseenter * fix: changed to absolute import * fix: moved hover state into the store * fix: renamed store actions Approved-by: Michael Zetterberg
155 lines
2.9 KiB
CSS
155 lines
2.9 KiB
CSS
.dialog {
|
|
padding-bottom: var(--Spacing-x1);
|
|
bottom: 0;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
border: none;
|
|
background: transparent;
|
|
}
|
|
|
|
.dialogContainer {
|
|
border: 1px solid var(--Base-Border-Subtle);
|
|
border-radius: var(--Corner-radius-Medium);
|
|
min-width: 402px;
|
|
background: var(--Base-Surface-Primary-light-Normal);
|
|
box-shadow: 0px 0px 8px 3px rgba(0, 0, 0, 0.1);
|
|
flex-direction: row;
|
|
display: flex;
|
|
position: relative;
|
|
}
|
|
|
|
.dialogContainer[data-type="listing"] {
|
|
min-width: 358px;
|
|
}
|
|
|
|
.dialogContainer[data-type="listing"] .header {
|
|
display: flex;
|
|
flex-direction: row;
|
|
gap: var(--Spacing-x-one-and-half);
|
|
}
|
|
|
|
.name {
|
|
height: 48px;
|
|
max-width: 180px;
|
|
margin-bottom: var(--Spacing-x-half);
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.closeIcon {
|
|
position: absolute;
|
|
top: 8px;
|
|
right: 8px;
|
|
}
|
|
.content {
|
|
width: 100%;
|
|
min-width: 220px;
|
|
padding: var(--Spacing-x-one-and-half);
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.dialogContainer[data-type="listing"] .content {
|
|
gap: var(--Spacing-x-one-and-half);
|
|
}
|
|
|
|
.facilities {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 0 var(--Spacing-x1);
|
|
}
|
|
|
|
.dialogContainer[data-type="listing"] .facilities {
|
|
display: flex;
|
|
flex-wrap: nowrap;
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
position: relative;
|
|
padding-right: 20px;
|
|
gap: 0 var(--Spacing-x-one-and-half);
|
|
max-width: 242px;
|
|
}
|
|
.dialogContainer[data-type="listing"] .facilities::after {
|
|
content: "";
|
|
position: absolute;
|
|
top: 0;
|
|
right: 0;
|
|
width: 20px;
|
|
height: 100%;
|
|
background: linear-gradient(
|
|
to left,
|
|
rgba(255, 255, 255, 1),
|
|
rgba(255, 255, 255, 0)
|
|
);
|
|
pointer-events: none;
|
|
}
|
|
|
|
.facilitiesItem {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--Spacing-x-half);
|
|
}
|
|
|
|
.dialogContainer[data-type="listing"] .facilitiesItem {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: var(--Spacing-x-half);
|
|
}
|
|
|
|
.priceCard {
|
|
border-radius: var(--Corner-radius-Medium);
|
|
padding: var(--Spacing-x-half) var(--Spacing-x1);
|
|
background: var(--Base-Surface-Secondary-light-Normal);
|
|
margin-top: var(--Spacing-x1);
|
|
}
|
|
|
|
.prices {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--Spacing-x1);
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.bottomContainer {
|
|
display: flex;
|
|
flex-direction: row;
|
|
border-top: 1px solid var(--Primary-Light-On-Surface-Divider-subtle);
|
|
padding-top: var(--Spacing-x2);
|
|
padding-bottom: var(--Spacing-x-half);
|
|
}
|
|
|
|
.pricesContainer {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--Spacing-x1);
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.dialogContainer[data-type="listing"] .pricesContainer {
|
|
flex: 1;
|
|
height: 44px;
|
|
gap: 0;
|
|
justify-content: flex-start;
|
|
}
|
|
|
|
.listingPrices {
|
|
display: flex;
|
|
flex-direction: row;
|
|
gap: var(--Spacing-x1);
|
|
}
|
|
|
|
.perNight {
|
|
color: var(--Base-Text-Subtle-light-Normal);
|
|
}
|
|
|
|
.content .button {
|
|
margin-top: auto;
|
|
}
|
|
|
|
@media (min-width: 768px) {
|
|
.dialog {
|
|
bottom: 32px;
|
|
}
|
|
}
|