Files
web/apps/scandic-web/components/HotelReservation/HotelCardDialog/hotelCardDialog.module.css
Tobias Johansson 9a9789e736 Merged in feat/SW-1549-map-improvements (pull request #1783)
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
2025-04-15 13:23:23 +00:00

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