feat/SW-843-UI-hotel-card-select-hotel (pull request #887)
Approved-by: Pontus Dreij Approved-by: Niclas Edenvin
This commit is contained in:
34
components/HotelReservation/HotelCard/HotelLogo/index.tsx
Normal file
34
components/HotelReservation/HotelCard/HotelLogo/index.tsx
Normal file
@@ -0,0 +1,34 @@
|
||||
import {
|
||||
DowntownCamperIcon,
|
||||
GrandHotelOsloLogoIcon,
|
||||
HaymarketIcon,
|
||||
HotelNorgeIcon,
|
||||
MarskiLogoIcon,
|
||||
ScandicGoLogoIcon,
|
||||
ScandicLogoIcon,
|
||||
} from "@/components/Icons"
|
||||
|
||||
import type { HotelLogoProps } from "@/types/components/hotelReservation/selectHotel/hotelLogoProps"
|
||||
import { HotelTypeEnum } from "@/types/enums/hotelType"
|
||||
import { SignatureHotelEnum } from "@/types/enums/signatureHotel"
|
||||
|
||||
export default function HotelLogo({ hotelId, hotelType }: HotelLogoProps) {
|
||||
if (hotelType === HotelTypeEnum.ScandicGo) {
|
||||
return <ScandicGoLogoIcon />
|
||||
}
|
||||
|
||||
switch (hotelId) {
|
||||
case SignatureHotelEnum.Haymarket:
|
||||
return <HaymarketIcon />
|
||||
case SignatureHotelEnum.HotelNorge:
|
||||
return <HotelNorgeIcon />
|
||||
case SignatureHotelEnum.DowntownCamper:
|
||||
return <DowntownCamperIcon />
|
||||
case SignatureHotelEnum.GrandHotelOslo:
|
||||
return <GrandHotelOsloLogoIcon />
|
||||
case SignatureHotelEnum.Marski:
|
||||
return <MarskiLogoIcon />
|
||||
default:
|
||||
return <ScandicLogoIcon color="red" />
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
import { useIntl } from "react-intl"
|
||||
|
||||
import Body from "@/components/TempDesignSystem/Text/Body"
|
||||
import Caption from "@/components/TempDesignSystem/Text/Caption"
|
||||
import Subtitle from "@/components/TempDesignSystem/Text/Subtitle"
|
||||
|
||||
import styles from "../hotelPriceList.module.css"
|
||||
|
||||
import type { PriceCardProps } from "@/types/components/hotelReservation/selectHotel/priceCardProps"
|
||||
|
||||
export default function HotelPriceCard({
|
||||
currency,
|
||||
memberAmount,
|
||||
regularAmount,
|
||||
}: PriceCardProps) {
|
||||
const intl = useIntl()
|
||||
|
||||
return (
|
||||
<dl className={styles.priceCard}>
|
||||
{memberAmount && (
|
||||
<div className={styles.priceRow}>
|
||||
<dt>
|
||||
<Caption color="red">
|
||||
{intl.formatMessage({ id: "Member price" })}
|
||||
</Caption>
|
||||
</dt>
|
||||
</div>
|
||||
)}
|
||||
<div className={styles.priceRow}>
|
||||
<dt>
|
||||
<Caption
|
||||
type="bold"
|
||||
color={memberAmount ? "red" : "uiTextHighContrast"}
|
||||
>
|
||||
{intl.formatMessage({ id: "From" })}
|
||||
</Caption>
|
||||
</dt>
|
||||
<dd>
|
||||
<div className={styles.price}>
|
||||
<Subtitle
|
||||
type="two"
|
||||
color={memberAmount ? "red" : "uiTextHighContrast"}
|
||||
>
|
||||
{memberAmount ? memberAmount : regularAmount}
|
||||
</Subtitle>
|
||||
<Body
|
||||
color={memberAmount ? "red" : "uiTextHighContrast"}
|
||||
textTransform="bold"
|
||||
>
|
||||
{currency}
|
||||
<span className={styles.perNight}>
|
||||
/{intl.formatMessage({ id: "night" })}
|
||||
</span>
|
||||
</Body>
|
||||
</div>
|
||||
</dd>
|
||||
</div>
|
||||
{/* TODO add correct local price when API change */}
|
||||
<div className={styles.priceRow}>
|
||||
<dt>
|
||||
<Caption color={"disabled"}>
|
||||
{intl.formatMessage({ id: "Approx." })}
|
||||
</Caption>
|
||||
</dt>
|
||||
<dd>
|
||||
<Caption color="disabled"> - EUR</Caption>
|
||||
</dd>
|
||||
</div>
|
||||
</dl>
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
.priceCard {
|
||||
padding: var(--Spacing-x-one-and-half);
|
||||
background-color: var(--Base-Surface-Secondary-light-Normal);
|
||||
border-radius: var(--Corner-radius-Medium);
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.noRooms {
|
||||
display: flex;
|
||||
gap: var(--Spacing-x1);
|
||||
}
|
||||
|
||||
.priceRow {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: baseline;
|
||||
padding: var(--Spacing-x-quarter) 0;
|
||||
}
|
||||
|
||||
.price {
|
||||
display: flex;
|
||||
gap: var(--Spacing-x-half);
|
||||
}
|
||||
|
||||
.perNight {
|
||||
font-weight: 400;
|
||||
font-size: var(--typography-Caption-Regular-fontSize);
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
import { useIntl } from "react-intl"
|
||||
|
||||
import { ErrorCircleIcon } from "@/components/Icons"
|
||||
import Body from "@/components/TempDesignSystem/Text/Body"
|
||||
|
||||
import HotelPriceCard from "./HotelPriceCard"
|
||||
|
||||
import styles from "./hotelPriceList.module.css"
|
||||
|
||||
import { HotelPriceListProps } from "@/types/components/hotelReservation/selectHotel/hotePriceListProps"
|
||||
|
||||
export default function HotelPriceList({ price }: HotelPriceListProps) {
|
||||
const intl = useIntl()
|
||||
|
||||
return (
|
||||
<>
|
||||
{price ? (
|
||||
<>
|
||||
<HotelPriceCard
|
||||
currency={price?.currency}
|
||||
regularAmount={price?.regularAmount}
|
||||
/>
|
||||
<HotelPriceCard
|
||||
currency={price?.currency}
|
||||
memberAmount={price?.memberAmount}
|
||||
/>
|
||||
</>
|
||||
) : (
|
||||
<div className={styles.priceCard}>
|
||||
<div className={styles.noRooms}>
|
||||
<ErrorCircleIcon color="red" />
|
||||
<Body>
|
||||
{intl.formatMessage({
|
||||
id: "There are no rooms available that match your request",
|
||||
})}
|
||||
</Body>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</>
|
||||
)
|
||||
}
|
||||
@@ -1,15 +1,15 @@
|
||||
.card {
|
||||
display: grid;
|
||||
grid-template-areas:
|
||||
"image header"
|
||||
"hotel hotel"
|
||||
"prices prices";
|
||||
gap: var(--Spacing-x2);
|
||||
padding: var(--Spacing-x2);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: var(--Base-Surface-Primary-light-Normal);
|
||||
border: 1px solid var(--Base-Border-Subtle);
|
||||
border-radius: var(--Corner-radius-Medium);
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.card.active {
|
||||
border: 1px solid var(--Base-Border-Hover);
|
||||
}
|
||||
|
||||
.card.active {
|
||||
@@ -17,14 +17,9 @@
|
||||
}
|
||||
|
||||
.imageContainer {
|
||||
grid-area: image;
|
||||
position: relative;
|
||||
height: 100%;
|
||||
width: 116px;
|
||||
}
|
||||
|
||||
.tripAdvisor {
|
||||
display: none;
|
||||
height: 200px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.imageContainer img {
|
||||
@@ -32,19 +27,41 @@
|
||||
}
|
||||
|
||||
.hotelInformation {
|
||||
grid-area: header;
|
||||
margin-bottom: var(--Spacing-x-half);
|
||||
}
|
||||
|
||||
.hotel {
|
||||
.hotelContent {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
grid-area: hotel;
|
||||
padding: var(--Spacing-x2);
|
||||
}
|
||||
|
||||
.hotelDescription {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.titleContainer {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--Spacing-x-half);
|
||||
margin-top: var(--Spacing-x-half);
|
||||
}
|
||||
|
||||
.addressContainer {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: var(--Spacing-x1);
|
||||
}
|
||||
|
||||
.address {
|
||||
display: none;
|
||||
font-style: normal;
|
||||
}
|
||||
.facilities {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: var(--Spacing-x1);
|
||||
margin-top: var(--Spacing-x-one-and-half);
|
||||
}
|
||||
|
||||
.facilitiesItem {
|
||||
@@ -56,78 +73,70 @@
|
||||
.prices {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--Spacing-x2);
|
||||
grid-area: prices;
|
||||
gap: var(--Spacing-x-one-and-half);
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.public,
|
||||
.member {
|
||||
max-width: fit-content;
|
||||
margin-bottom: var(--Spacing-x-half);
|
||||
.detailsButton {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.button {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.address {
|
||||
display: none;
|
||||
min-width: 160px;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 1367px) {
|
||||
.card.pageListing {
|
||||
grid-template-areas:
|
||||
"image header"
|
||||
"image hotel"
|
||||
"image prices";
|
||||
flex-direction: row;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.pageListing .imageContainer {
|
||||
position: relative;
|
||||
min-height: 200px;
|
||||
width: 518px;
|
||||
.pageListing .hotelDescription {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.pageListing .tripAdvisor {
|
||||
position: absolute;
|
||||
display: block;
|
||||
left: 7px;
|
||||
top: 7px;
|
||||
.pageListing .imageContainer {
|
||||
position: relative;
|
||||
height: 100%;
|
||||
width: 314px;
|
||||
}
|
||||
|
||||
.pageListing .hotelInformation {
|
||||
padding-top: var(--Spacing-x2);
|
||||
width: min(422px, 100%);
|
||||
padding-right: var(--Spacing-x2);
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.pageListing .hotel {
|
||||
.pageListing .facilities {
|
||||
margin: var(--Spacing-x1) 0;
|
||||
}
|
||||
|
||||
.pageListing .hotelContent {
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
gap: var(--Spacing-x2);
|
||||
padding-right: var(--Spacing-x2);
|
||||
padding-left: var(--Spacing-x3);
|
||||
}
|
||||
|
||||
.pageListing .titleContainer {
|
||||
margin-bottom: var(--Spacing-x-one-and-half);
|
||||
}
|
||||
|
||||
.pageListing .prices {
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding-right: var(--Spacing-x2);
|
||||
padding-bottom: var(--Spacing-x2);
|
||||
}
|
||||
|
||||
.pageListing .detailsButton {
|
||||
border-bottom: none;
|
||||
width: 260px;
|
||||
}
|
||||
|
||||
.pageListing .button {
|
||||
width: 160px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.address {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.addressMobile {
|
||||
.pageListing .addressMobile {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.pageListing .address {
|
||||
display: inline;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,17 +6,18 @@ import { Lang } from "@/constants/languages"
|
||||
import { selectHotelMap } from "@/constants/routes/hotelReservation"
|
||||
|
||||
import { mapFacilityToIcon } from "@/components/ContentType/HotelPage/data"
|
||||
import { PriceTagIcon, ScandicLogoIcon } from "@/components/Icons"
|
||||
import TripAdvisorIcon from "@/components/Icons/TripAdvisor"
|
||||
import ImageGallery from "@/components/ImageGallery"
|
||||
import Button from "@/components/TempDesignSystem/Button"
|
||||
import Chip from "@/components/TempDesignSystem/Chip"
|
||||
import Divider from "@/components/TempDesignSystem/Divider"
|
||||
import Link from "@/components/TempDesignSystem/Link"
|
||||
import Body from "@/components/TempDesignSystem/Text/Body"
|
||||
import Caption from "@/components/TempDesignSystem/Text/Caption"
|
||||
import Footnote from "@/components/TempDesignSystem/Text/Footnote"
|
||||
import Title from "@/components/TempDesignSystem/Text/Title"
|
||||
import Subtitle from "@/components/TempDesignSystem/Text/Subtitle"
|
||||
|
||||
import ReadMore from "../ReadMore"
|
||||
import TripAdvisorChip from "../TripAdvisorChip"
|
||||
import HotelLogo from "./HotelLogo"
|
||||
import HotelPriceList from "./HotelPriceList"
|
||||
import { hotelCardVariants } from "./variants"
|
||||
|
||||
import styles from "./hotelCard.module.css"
|
||||
@@ -61,100 +62,97 @@ export default function HotelCard({
|
||||
onMouseEnter={handleMouseEnter}
|
||||
onMouseLeave={handleMouseLeave}
|
||||
>
|
||||
<section className={styles.imageContainer}>
|
||||
<ImageGallery
|
||||
title={hotelData.name}
|
||||
images={hotelData.galleryImages}
|
||||
fill
|
||||
/>
|
||||
<div className={styles.tripAdvisor}>
|
||||
<Chip intent="primary" className={styles.tripAdvisor}>
|
||||
<TripAdvisorIcon color="white" />
|
||||
{hotelData.ratings?.tripAdvisor.rating}
|
||||
</Chip>
|
||||
<div>
|
||||
<div className={styles.imageContainer}>
|
||||
<ImageGallery
|
||||
title={hotelData.name}
|
||||
images={hotelData.galleryImages}
|
||||
fill
|
||||
/>
|
||||
{hotelData.ratings?.tripAdvisor && (
|
||||
<TripAdvisorChip rating={hotelData.ratings.tripAdvisor.rating} />
|
||||
)}
|
||||
</div>
|
||||
</section>
|
||||
<section className={styles.hotelInformation}>
|
||||
<ScandicLogoIcon color="red" />
|
||||
<Title as="h4" textTransform="capitalize">
|
||||
{hotelData.name}
|
||||
</Title>
|
||||
<Footnote color="uiTextMediumContrast" className={styles.address}>
|
||||
{`${hotelData.address.streetAddress}, ${hotelData.address.city}`}
|
||||
</Footnote>
|
||||
<Link
|
||||
className={styles.addressMobile}
|
||||
href={`${selectHotelMap[lang]}?selectedHotel=${hotelData.name}`}
|
||||
keepSearchParams
|
||||
variant="underscored"
|
||||
>
|
||||
<Footnote color="burgundy">
|
||||
{`${hotelData.address.streetAddress}, ${hotelData.address.city}`}
|
||||
</Footnote>
|
||||
</Link>
|
||||
<Footnote color="uiTextMediumContrast">
|
||||
{`${hotelData.location.distanceToCentre} ${intl.formatMessage({ id: "km to city center" })}`}
|
||||
</Footnote>
|
||||
</section>
|
||||
<section className={styles.hotel}>
|
||||
<div className={styles.facilities}>
|
||||
{amenities.map((facility) => {
|
||||
const IconComponent = mapFacilityToIcon(facility.id)
|
||||
return (
|
||||
<div className={styles.facilitiesItem} key={facility.id}>
|
||||
{IconComponent && <IconComponent color="grey80" />}
|
||||
<Caption color="textMediumContrast">{facility.name}</Caption>
|
||||
</div>
|
||||
<div className={styles.hotelContent}>
|
||||
<section className={styles.hotelInformation}>
|
||||
<div className={styles.titleContainer}>
|
||||
<HotelLogo
|
||||
hotelId={hotel.hotelData.operaId}
|
||||
hotelType={hotel.hotelData.hotelType}
|
||||
/>
|
||||
<Subtitle textTransform="capitalize" color="uiTextHighContrast">
|
||||
{hotelData.name}
|
||||
</Subtitle>
|
||||
<div className={styles.addressContainer}>
|
||||
<address className={styles.address}>
|
||||
<Caption color="uiTextPlaceholder">
|
||||
{hotelData.address.streetAddress}, {hotelData.address.city}
|
||||
</Caption>
|
||||
</address>
|
||||
<Link
|
||||
className={styles.addressMobile}
|
||||
href={`${selectHotelMap[lang]}?selectedHotel=${hotelData.name}`}
|
||||
keepSearchParams
|
||||
>
|
||||
<Caption color="baseTextMediumContrast" type="underline">
|
||||
{hotelData.address.streetAddress}, {hotelData.address.city}
|
||||
</Caption>
|
||||
</Link>
|
||||
<div>
|
||||
<Divider variant="vertical" color="subtle" />
|
||||
</div>
|
||||
)
|
||||
})}
|
||||
</div>
|
||||
<ReadMore
|
||||
label={intl.formatMessage({ id: "See hotel details" })}
|
||||
hotelId={hotelData.operaId}
|
||||
hotel={hotelData}
|
||||
showCTA={true}
|
||||
/>
|
||||
</section>
|
||||
<section className={styles.prices}>
|
||||
<div>
|
||||
<Chip intent="primary" className={styles.public}>
|
||||
<PriceTagIcon color="white" width={15} height={15} />
|
||||
{intl.formatMessage({ id: "Public price from" })}
|
||||
</Chip>
|
||||
<Caption color="textMediumContrast">
|
||||
{price?.regularAmount} {price?.currency} /
|
||||
{intl.formatMessage({ id: "night" })}
|
||||
</Caption>
|
||||
<Footnote color="uiTextMediumContrast">approx 280 eur</Footnote>
|
||||
</div>
|
||||
<div>
|
||||
<Chip intent="primary" className={styles.member}>
|
||||
<PriceTagIcon color="white" width={15} height={15} />
|
||||
{intl.formatMessage({ id: "Member price from" })}
|
||||
</Chip>
|
||||
<Caption color="textMediumContrast">
|
||||
{price?.memberAmount} {price?.currency} /
|
||||
{intl.formatMessage({ id: "night" })}
|
||||
</Caption>
|
||||
<Footnote color="uiTextMediumContrast">approx 280 eur</Footnote>
|
||||
</div>
|
||||
<Button
|
||||
asChild
|
||||
theme="base"
|
||||
intent="tertiary"
|
||||
size="small"
|
||||
className={styles.button}
|
||||
>
|
||||
{/* TODO: Localize link and also use correct search params */}
|
||||
<Link
|
||||
href={`/en/hotelreservation/select-rate?hotel=${hotelData.operaId}`}
|
||||
color="none"
|
||||
keepSearchParams
|
||||
<Caption color="uiTextPlaceholder">
|
||||
{intl.formatMessage(
|
||||
{ id: "Distance to city centre" },
|
||||
{ number: hotelData.location.distanceToCentre }
|
||||
)}
|
||||
</Caption>
|
||||
</div>
|
||||
</div>
|
||||
<Body className={styles.hotelDescription}>
|
||||
{hotelData.hotelContent.texts.descriptions.short}
|
||||
</Body>
|
||||
<div className={styles.facilities}>
|
||||
{amenities.map((facility) => {
|
||||
const IconComponent = mapFacilityToIcon(facility.id)
|
||||
return (
|
||||
<div className={styles.facilitiesItem} key={facility.id}>
|
||||
{IconComponent && <IconComponent color="grey80" />}
|
||||
<Caption color="uiTextMediumContrast">
|
||||
{facility.name}
|
||||
</Caption>
|
||||
</div>
|
||||
)
|
||||
})}
|
||||
</div>
|
||||
<ReadMore
|
||||
label={intl.formatMessage({ id: "About the hotel" })}
|
||||
hotelId={hotelData.operaId}
|
||||
hotel={hotelData}
|
||||
showCTA={true}
|
||||
/>
|
||||
</section>
|
||||
<div className={styles.prices}>
|
||||
<HotelPriceList price={price} />
|
||||
<Button
|
||||
asChild
|
||||
theme="base"
|
||||
intent="primary"
|
||||
size="small"
|
||||
className={styles.button}
|
||||
>
|
||||
{intl.formatMessage({ id: "See rooms" })}
|
||||
</Link>
|
||||
</Button>
|
||||
</section>
|
||||
{/* TODO: Localize link and also use correct search params */}
|
||||
<Link
|
||||
href={`/en/hotelreservation/select-rate?hotel=${hotelData.operaId}`}
|
||||
color="none"
|
||||
keepSearchParams
|
||||
>
|
||||
{intl.formatMessage({ id: "See rooms" })}
|
||||
</Link>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
.hotelCards {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--Spacing-x4);
|
||||
gap: var(--Spacing-x2);
|
||||
margin-bottom: var(--Spacing-x2);
|
||||
}
|
||||
|
||||
@@ -24,18 +24,6 @@
|
||||
border-radius: var(--Corner-radius-Medium);
|
||||
}
|
||||
|
||||
.tripAdvisor {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--Spacing-x-half);
|
||||
background-color: var(--Base-Surface-Primary-light-Normal);
|
||||
position: absolute;
|
||||
left: 8px;
|
||||
top: 8px;
|
||||
padding: var(--Spacing-x-quarter) var(--Spacing-x1);
|
||||
border-radius: var(--Corner-radius-Small);
|
||||
}
|
||||
|
||||
.hotelContent {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
import { useIntl } from "react-intl"
|
||||
|
||||
import { mapFacilityToIcon } from "@/components/ContentType/HotelPage/data"
|
||||
import TripAdvisorIcon from "@/components/Icons/TripAdvisor"
|
||||
import ImageGallery from "@/components/ImageGallery"
|
||||
import Alert from "@/components/TempDesignSystem/Alert"
|
||||
import Divider from "@/components/TempDesignSystem/Divider"
|
||||
@@ -11,6 +10,7 @@ import Caption from "@/components/TempDesignSystem/Text/Caption"
|
||||
import Title from "@/components/TempDesignSystem/Text/Title"
|
||||
|
||||
import ReadMore from "../../ReadMore"
|
||||
import TripAdvisorChip from "../../TripAdvisorChip"
|
||||
|
||||
import styles from "./hotelInfoCard.module.css"
|
||||
|
||||
@@ -35,12 +35,9 @@ export default function HotelInfoCard({ hotelData }: HotelInfoCardProps) {
|
||||
fill
|
||||
/>
|
||||
{hotelAttributes.ratings?.tripAdvisor && (
|
||||
<div className={styles.tripAdvisor}>
|
||||
<TripAdvisorIcon color="burgundy" />
|
||||
<Caption color="burgundy">
|
||||
{hotelAttributes.ratings.tripAdvisor.rating}
|
||||
</Caption>
|
||||
</div>
|
||||
<TripAdvisorChip
|
||||
rating={hotelAttributes.ratings.tripAdvisor.rating}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
<div className={styles.hotelContent}>
|
||||
|
||||
15
components/HotelReservation/TripAdvisorChip/index.tsx
Normal file
15
components/HotelReservation/TripAdvisorChip/index.tsx
Normal file
@@ -0,0 +1,15 @@
|
||||
import TripAdvisorIcon from "@/components/Icons/TripAdvisor"
|
||||
import Caption from "@/components/TempDesignSystem/Text/Caption"
|
||||
|
||||
import styles from "./tripAdvisorChip.module.css"
|
||||
|
||||
import type { TripAdvisorProps } from "@/types/components/hotelReservation/tripAdvisorProps"
|
||||
|
||||
export default function TripAdvisorChip({ rating }: TripAdvisorProps) {
|
||||
return (
|
||||
<div className={styles.tripAdvisor}>
|
||||
<TripAdvisorIcon color="burgundy" />
|
||||
<Caption color="burgundy">{rating}</Caption>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
.tripAdvisor {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--Spacing-x-half);
|
||||
background-color: var(--Base-Surface-Primary-light-Normal);
|
||||
position: absolute;
|
||||
left: 16px;
|
||||
top: 16px;
|
||||
padding: var(--Spacing-x-quarter) var(--Spacing-x1);
|
||||
border-radius: var(--Corner-radius-Small);
|
||||
}
|
||||
113
components/Icons/Logos/DowntownCamper.tsx
Normal file
113
components/Icons/Logos/DowntownCamper.tsx
Normal file
@@ -0,0 +1,113 @@
|
||||
import { iconVariants } from "../variants"
|
||||
|
||||
import type { IconProps } from "@/types/components/icon"
|
||||
|
||||
export default function DowntownCamperIcon({
|
||||
className,
|
||||
color,
|
||||
...props
|
||||
}: IconProps) {
|
||||
const classNames = iconVariants({ className, color })
|
||||
return (
|
||||
<svg
|
||||
className={classNames}
|
||||
width="123"
|
||||
height="30"
|
||||
viewBox="0 0 123 30"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...props}
|
||||
>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M96.0419 15.3495L95.3648 13.7244L94.6879 15.3495H96.0419ZM94.8627 12.4001H95.8963L98.0802 17.4472H96.9082L96.4423 16.3231H94.2875L93.8216 17.4472H92.6787L94.8627 12.4001Z"
|
||||
fill="#1A1918"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M87.7476 14.9558V14.9415C87.7476 13.5168 88.8396 12.3501 90.4047 12.3501C91.3655 12.3501 91.9407 12.6651 92.4138 13.1233L91.7004 13.9322C91.3074 13.5814 90.907 13.3665 90.3975 13.3665C89.5383 13.3665 88.9196 14.0681 88.9196 14.9272V14.9415C88.9196 15.8005 89.5238 16.5165 90.3975 16.5165C90.9797 16.5165 91.3365 16.2874 91.7369 15.9296L92.4502 16.6383C91.9261 17.1894 91.3437 17.5329 90.3609 17.5329C88.8614 17.5329 87.7476 16.3949 87.7476 14.9558Z"
|
||||
fill="#1A1918"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M100.802 12.4358L102.141 14.555L103.481 12.4358H104.689V17.4472H103.575V14.1754L102.141 16.3161H102.112L100.693 14.197V17.4472H99.5935V12.4358H100.802Z"
|
||||
fill="#1A1918"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M108.648 14.9631C109.209 14.9631 109.536 14.6336 109.536 14.2043V14.19C109.536 13.696 109.187 13.4311 108.627 13.4311H107.76V14.9631H108.648ZM106.639 12.4358H108.721C109.937 12.4358 110.672 13.1449 110.672 14.1684V14.1827C110.672 15.3423 109.755 15.9439 108.612 15.9439H107.76V17.4472H106.639V12.4358Z"
|
||||
fill="#1A1918"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M112.175 12.4358H116.019V13.4166H113.289V14.4332H115.691V15.414H113.289V16.4664H116.055V17.4472H112.175V12.4358Z"
|
||||
fill="#1A1918"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M120.037 14.87C120.583 14.87 120.896 14.5835 120.896 14.1613V14.1469C120.896 13.6744 120.561 13.4311 120.015 13.4311H118.901V14.87H120.037ZM117.78 12.4358H120.11C120.758 12.4358 121.26 12.615 121.595 12.9441C121.879 13.2235 122.032 13.617 122.032 14.0898V14.1041C122.032 14.913 121.588 15.4213 120.94 15.6575L122.184 17.4472H120.874L119.782 15.8436H118.901V17.4472H117.78V12.4358Z"
|
||||
fill="#1A1918"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M30.7865 16.535C31.7037 16.535 32.3225 15.9265 32.3225 15.0386V15.0243C32.3225 14.1368 31.7037 13.5137 30.7865 13.5137H29.9201V16.535H30.7865ZM28.7991 12.5186H30.7865C32.388 12.5186 33.4945 13.5996 33.4945 15.0101V15.0243C33.4945 16.4346 32.388 17.53 30.7865 17.53H28.7991V12.5186Z"
|
||||
fill="#1A1918"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M39.1299 15.0385V15.0242C39.1299 14.1652 38.4893 13.4492 37.5867 13.4492C36.684 13.4492 36.058 14.1508 36.058 15.01V15.0242C36.058 15.8832 36.6986 16.5992 37.6012 16.5992C38.5039 16.5992 39.1299 15.8976 39.1299 15.0385ZM34.886 15.0385V15.0242C34.886 13.5995 36.0288 12.4326 37.6012 12.4326C39.1736 12.4326 40.3021 13.5852 40.3021 15.01V15.0242C40.3021 16.4487 39.1591 17.6156 37.5867 17.6156C36.0142 17.6156 34.886 16.4632 34.886 15.0385Z"
|
||||
fill="#1A1918"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M41.3423 12.5186H42.5433L43.599 15.912L44.7418 12.5044H45.7029L46.8457 15.912L47.9012 12.5186H49.0733L47.3334 17.5656H46.358L45.2078 14.2871L44.0575 17.5656H43.0821L41.3423 12.5186Z"
|
||||
fill="#1A1918"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M50.6294 12.5186H51.6631L54.0507 15.6043V12.5186H55.1572V17.53H54.2038L51.7359 14.3442V17.53H50.6294V12.5186Z"
|
||||
fill="#1A1918"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M58.2941 13.5351H56.7437V12.5186H60.966V13.5351H59.4153V17.53H58.2941V13.5351Z"
|
||||
fill="#1A1918"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M66.3523 15.0385V15.0242C66.3523 14.1652 65.7118 13.4492 64.8089 13.4492C63.9064 13.4492 63.2802 14.1508 63.2802 15.01V15.0242C63.2802 15.8832 63.921 16.5992 64.8235 16.5992C65.7263 16.5992 66.3523 15.8976 66.3523 15.0385ZM62.1084 15.0385V15.0242C62.1084 13.5995 63.2511 12.4326 64.8235 12.4326C66.3961 12.4326 67.5243 13.5852 67.5243 15.01V15.0242C67.5243 16.4487 66.3815 17.6156 64.8089 17.6156C63.2367 17.6156 62.1084 16.4632 62.1084 15.0385Z"
|
||||
fill="#1A1918"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M68.5647 12.5186H69.7659L70.8212 15.912L71.9641 12.5044H72.9253L74.0679 15.912L75.1235 12.5186H76.2955L74.5558 17.5656H73.5802L72.43 14.2871L71.2798 17.5656H70.3043L68.5647 12.5186Z"
|
||||
fill="#1A1918"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M77.8521 12.5186H78.8858L81.2736 15.6043V12.5186H82.3803V17.53H81.4264L78.9587 14.3442V17.53H77.8521V12.5186Z"
|
||||
fill="#1A1918"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M1.21659 25.8034H9.61438C9.62255 25.8034 9.63167 25.8036 9.63968 25.8036C15.4622 25.8036 19.9698 22.4621 21.083 17.41H16.9031C15.9839 20.5465 13.2437 22.4718 9.63811 22.4718H9.62113H5.0929V7.52819H9.64581C13.1087 7.53391 15.8143 9.37558 16.8166 12.3677H21.0466C19.8755 7.45971 15.3878 4.20598 9.65258 4.1964H1.21659V25.8034ZM9.6411 27H9.61327H0V3H9.65352C16.2722 3.01113 21.3895 6.97661 22.3887 12.8675L22.5067 13.5643H15.8942L15.7745 13.1189C15.0472 10.4134 12.6985 8.72969 9.64472 8.72459H6.3095V21.2751H9.62208H9.63654C12.8185 21.2751 15.193 19.5161 15.8371 16.6812L15.9434 16.2134H22.5209L22.4145 16.9017C21.4794 22.9446 16.3477 27 9.6411 27Z"
|
||||
fill="#1A1918"
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
27
components/Icons/Logos/GrandHotelOslo.tsx
Normal file
27
components/Icons/Logos/GrandHotelOslo.tsx
Normal file
File diff suppressed because one or more lines are too long
63
components/Icons/Logos/Haymarket.tsx
Normal file
63
components/Icons/Logos/Haymarket.tsx
Normal file
@@ -0,0 +1,63 @@
|
||||
import { iconVariants } from "../variants"
|
||||
|
||||
import type { IconProps } from "@/types/components/icon"
|
||||
|
||||
export default function HaymarketIcon({
|
||||
className,
|
||||
color,
|
||||
...props
|
||||
}: IconProps) {
|
||||
const classNames = iconVariants({ className, color })
|
||||
return (
|
||||
<svg
|
||||
className={classNames}
|
||||
width="100"
|
||||
height="26"
|
||||
viewBox="0 0 100 26"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...props}
|
||||
>
|
||||
<path
|
||||
d="M12.8731 24.9845C19.6178 24.9845 25.1297 19.509 25.1297 12.8004C25.1297 6.09193 19.6178 0.580078 12.8731 0.580078C6.12831 0.580078 0.616455 6.05567 0.616455 12.7642C0.616455 19.4727 6.12831 24.9845 12.8731 24.9845ZM8.66666 9.24675H17.1158L12.8731 16.5354L8.66666 9.24675ZM8.66666 8.77534L10.6973 5.22164H15.0488L17.0795 8.77534H8.66666ZM17.2608 23.6791C15.9191 24.223 14.5411 24.4769 13.0907 24.5131V17.0794L17.2608 9.8632V23.6791ZM17.7322 2.10309C21.9386 3.98873 24.6583 8.19514 24.6583 12.7642C24.6583 17.3332 21.9386 21.5396 17.7322 23.4615V2.10309ZM17.2608 1.88552V8.12262L13.1994 1.05149C14.5774 1.08775 15.9554 1.37785 17.2608 1.88552ZM14.795 4.75023H10.9512L12.8731 1.45037L14.795 4.75023ZM8.48535 1.88552C9.79079 1.37785 11.1688 1.08775 12.583 1.05149L8.48535 8.12262V1.88552ZM8.48535 9.8632L12.6555 17.0794V24.5131C11.205 24.4769 9.82705 24.1868 8.48535 23.6791V9.8632ZM8.01394 2.10309V23.4615C3.80753 21.5759 1.08786 17.3695 1.08786 12.7642C1.08786 8.15888 3.80753 3.98873 8.01394 2.10309Z"
|
||||
fill="black"
|
||||
/>
|
||||
<path
|
||||
d="M34.8479 12.1114H31.6931V9.75439H30.4602V16.0278H31.6931V13.1993H34.8479V16.0278H36.0446V9.75439H34.8479V12.1114Z"
|
||||
fill="black"
|
||||
/>
|
||||
<path
|
||||
d="M41.3389 9.75439L38.6555 16.064H39.9247L40.5049 14.6861H43.0432L43.6234 16.064H44.8926L42.2092 9.75439H41.3389ZM40.9763 13.5619L41.7741 11.7126L42.5718 13.5619H40.9763Z"
|
||||
fill="black"
|
||||
/>
|
||||
<path
|
||||
d="M50.2232 9.75439L48.8453 11.9664L47.4673 9.75439H46.0894L48.2288 13.1993V16.0278H49.4617V13.1993L51.6012 9.75439H50.2232Z"
|
||||
fill="black"
|
||||
/>
|
||||
<path
|
||||
d="M57.3667 13.5257L55.0822 9.75439H54.2119V16.0278H55.4448V12.5466L56.9678 15.0124H57.8019L59.3249 12.5466V16.0278H60.5215V9.75439H59.6512L57.3667 13.5257Z"
|
||||
fill="black"
|
||||
/>
|
||||
<path
|
||||
d="M69.3697 16.0279L66.6863 9.71826H65.816L63.1326 16.0279H64.4017L64.9819 14.6499H67.5203L68.1005 16.0279H69.3697ZM65.4533 13.5621L66.2511 11.7127L67.0489 13.5621H65.4533Z"
|
||||
fill="black"
|
||||
/>
|
||||
<path
|
||||
d="M75.0265 13.1632C75.2803 13.0906 75.4979 12.9456 75.643 12.8005C75.9693 12.4742 76.1869 12.0028 76.1869 11.5314C76.1869 11.0237 75.9693 10.5523 75.643 10.2622C75.3166 9.97208 74.9177 9.79077 74.265 9.79077H71.9805V16.1004H73.2134V13.3082H73.6485L75.8968 16.1004H77.3835L75.0265 13.1632ZM74.8089 11.9665C74.7001 12.0753 74.5551 12.1478 74.1925 12.1478H73.1771V10.8061H74.1925C74.5551 10.8061 74.7001 10.8786 74.8089 10.9874C74.9177 11.0962 74.9902 11.2775 74.9902 11.4588C74.9902 11.6764 74.9177 11.8577 74.8089 11.9665Z"
|
||||
fill="black"
|
||||
/>
|
||||
<path
|
||||
d="M85.1074 9.75439H83.5118L81.1185 12.2565V9.75439H79.9219V16.0278H81.1185V12.9455L83.9107 16.0278H85.47L82.3514 12.6191L85.1074 9.75439Z"
|
||||
fill="black"
|
||||
/>
|
||||
<path
|
||||
d="M89.2776 13.1993H91.1995V12.1114H89.2776V10.806H91.8159V9.75439H88.0447V16.0278H91.9247V14.9762H89.2776V13.1993Z"
|
||||
fill="black"
|
||||
/>
|
||||
<path
|
||||
d="M94.3906 9.75439V10.806H96.0587V16.0278H97.2553V10.806H98.9234V9.75439H94.3906Z"
|
||||
fill="black"
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
96
components/Icons/Logos/HotelNorge.tsx
Normal file
96
components/Icons/Logos/HotelNorge.tsx
Normal file
@@ -0,0 +1,96 @@
|
||||
import { iconVariants } from "../variants"
|
||||
|
||||
import type { IconProps } from "@/types/components/icon"
|
||||
|
||||
export default function HotelNorgeIcon({
|
||||
className,
|
||||
color,
|
||||
...props
|
||||
}: IconProps) {
|
||||
const classNames = iconVariants({ className, color })
|
||||
return (
|
||||
<svg
|
||||
className={classNames}
|
||||
width="117"
|
||||
height="24"
|
||||
viewBox="0 0 117 24"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...props}
|
||||
>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M3.54285 11.7371H11.6228V3.54285H3.54285V11.7371ZM20.4114 19.28V3.54285H12.5371L20.4114 19.28ZM3.54285 20.4115H11.6228V12.4343H3.54285V20.4115ZM20.1943 20.4114L12.32 4.67427V20.4114H20.1943ZM2.8457 21.0971H21.0971V2.8457H2.8457V21.0971Z"
|
||||
fill="#2A1000"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M0 23.9429H23.9429V0H0V23.9429ZM0.697143 23.2571H23.2571V0.697143H0.697143V23.2571Z"
|
||||
fill="#2A1000"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M30.3086 8.22852H31.7714V11.6571H35.9543V8.22852H37.4172V16.1258H35.9543V12.4457H31.7714V16.1258H30.3086V8.22852Z"
|
||||
fill="#2A1000"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M43.1315 15.4972C44.6629 15.4972 45.5086 14.2401 45.5086 12.1714C45.5086 10.0801 44.6629 8.83437 43.1315 8.83437C41.5886 8.83437 40.7544 10.0915 40.7544 12.1714C40.7544 14.2515 41.5886 15.4972 43.1315 15.4972ZM43.1315 8.11426C45.3944 8.11426 47.1544 9.86294 47.1544 12.1714C47.1544 14.4801 45.3944 16.2285 43.1315 16.2285C40.8572 16.2285 39.1086 14.4801 39.1086 12.1714C39.1086 9.86294 40.8572 8.11426 43.1315 8.11426Z"
|
||||
fill="#2A1000"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M50.663 9.01709H47.6802V8.22852H55.0973V9.01709H52.1145V16.1257H50.6516V9.01709H50.663Z"
|
||||
fill="#2A1000"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M56.7886 8.22852H62.4114V9.02852H58.2514V11.6457H61.3029V12.4457H58.2514V15.3142H62.5943V16.1258H56.7886V8.22852Z"
|
||||
fill="#2A1000"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M64.4228 8.22852H65.8857V15.3142H69.8742V16.1258H64.4114V8.22852H64.4228Z"
|
||||
fill="#2A1000"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M80.7658 8.22852H81.7144V16.1485H81.1429L76.0001 9.88566V16.1258H75.0515V8.22852H76.4572L80.7658 13.5085V8.22852Z"
|
||||
fill="#2A1000"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M87.4286 15.4972C88.96 15.4972 89.8058 14.2401 89.8058 12.1714C89.8058 10.0801 88.96 8.83437 87.4286 8.83437C85.8857 8.83437 85.0514 10.0915 85.0514 12.1714C85.0514 14.2515 85.8857 15.4972 87.4286 15.4972ZM87.4286 8.11426C89.6915 8.11426 91.4514 9.86294 91.4514 12.1714C91.4514 14.4801 89.6915 16.2285 87.4286 16.2285C85.1544 16.2285 83.4058 14.4801 83.4058 12.1714C83.3943 9.86294 85.1428 8.11426 87.4286 8.11426Z"
|
||||
fill="#2A1000"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M94.6058 11.9314H96.0458C97.1428 11.9314 97.8972 11.5199 97.8972 10.4342C97.8972 9.45137 97.2 9.00566 96.0458 9.00566H94.6058V11.9314ZM94.6058 16.1257H93.1428V8.22852H96.4915C98.1143 8.22852 99.4744 8.79994 99.4744 10.3657C99.4744 11.7371 98.2744 12.3085 97.1085 12.3314V12.3657C98.1029 12.4571 98.6058 12.8913 98.9143 13.7714L99.3258 14.8913C99.4972 15.3484 99.68 15.7028 100.012 16.1371H98.3657C98.1258 15.7714 97.9544 15.3484 97.8514 15.0285L97.3943 13.7599C97.1201 12.9828 96.8115 12.6971 95.8972 12.6971H94.6285V16.1257H94.6058Z"
|
||||
fill="#2A1000"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M107.897 16.1257L107.371 15.0056C106.937 15.7257 106.012 16.24 104.949 16.24C102.686 16.24 100.994 14.6743 100.994 12.2628C100.994 9.81716 102.869 8.12573 105.189 8.12573C106.64 8.12573 107.737 8.70859 108.389 9.85145L107.771 10.5029C107.28 9.61145 106.594 8.96002 105.349 8.96002C103.783 8.96002 102.652 10.1257 102.652 12.16C102.652 14.16 103.692 15.3943 105.177 15.3943C106.137 15.3943 106.971 14.7657 106.971 13.8172V12.3999H108.457V16.1372H107.897V16.1257Z"
|
||||
fill="#2A1000"
|
||||
/>
|
||||
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M110.549 8.22852H116.171V9.02852H112.011V11.6457H115.063V12.4457H112.011V15.3142H116.354V16.1258H110.549V8.22852Z"
|
||||
fill="#2A1000"
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
59
components/Icons/Logos/Marski.tsx
Normal file
59
components/Icons/Logos/Marski.tsx
Normal file
@@ -0,0 +1,59 @@
|
||||
import { iconVariants } from "../variants"
|
||||
|
||||
import type { IconProps } from "@/types/components/icon"
|
||||
|
||||
export default function MarskiLogoIcon({
|
||||
className,
|
||||
color,
|
||||
...props
|
||||
}: IconProps) {
|
||||
const classNames = iconVariants({ className, color })
|
||||
return (
|
||||
<svg
|
||||
className={classNames}
|
||||
width="92"
|
||||
height="30"
|
||||
viewBox="0 0 92 30"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...props}
|
||||
>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M0 10.2275H4.03407L5.34883 15.842H5.37449L6.68925 10.2275H10.7233V19.7719H8.04249V13.6496H8.01683L6.41874 19.7719H4.30494L2.70685 13.6496H2.68083V19.7719H0V10.2275Z"
|
||||
fill="#002435"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M22.4422 10.2273H25.2132L28.564 19.7717H25.6255L25.2389 18.4081H22.3132L21.9008 19.7717H19.0525L22.4422 10.2273ZM24.6722 16.3633L23.8471 13.4221H23.8215L22.9319 16.3633H24.6722Z"
|
||||
fill="#002435"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M37.1377 10.2273H42.5378C44.1491 10.2273 45.5412 11.1495 45.5412 12.9541C45.5412 13.9436 45.1028 14.986 44.162 15.3468C44.9353 15.6547 45.4122 16.537 45.5152 17.7265C45.5541 18.1945 45.5669 19.3303 45.8246 19.7717H42.989C42.8472 19.2904 42.7959 18.7959 42.757 18.3013C42.6797 17.3923 42.6027 16.4431 41.4811 16.4431H39.9728V19.7717H37.1377V10.2273ZM39.9728 14.3983H41.4555C41.9836 14.3983 42.7057 14.3044 42.7057 13.4491C42.7057 12.8473 42.3832 12.4998 41.3008 12.4998H39.9728V14.3983Z"
|
||||
fill="#002435"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M57.0406 16.564C57.0406 16.8043 57.0791 17.0183 57.1436 17.192C57.3499 17.7672 57.9686 17.8869 58.4968 17.8869C58.9609 17.8869 59.6697 17.7269 59.6697 17.0183C59.6697 16.5241 59.2702 16.3899 57.685 15.9223C56.2287 15.4946 54.5661 15.0803 54.5661 13.1552C54.5661 10.95 56.383 10.0007 58.278 10.0007C60.2756 10.0007 62.0412 10.7892 62.1185 13.1153H59.4377C59.4894 12.7542 59.3347 12.5135 59.1027 12.3531C58.8707 12.1794 58.5485 12.1128 58.2648 12.1128C57.8785 12.1128 57.2466 12.2197 57.2466 12.7542C57.2983 13.4361 58.613 13.5829 59.9146 13.9573C61.2165 14.3314 62.5052 14.9598 62.5052 16.7107C62.5052 19.1969 60.3013 19.9994 58.252 19.9994C57.2081 19.9994 54.2307 19.6117 54.2051 16.564H57.0406Z"
|
||||
fill="#002435"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M71.2209 10.2273H74.0565V13.516H74.0821L76.6083 10.2273H80.101L76.7629 13.9569L80.6423 19.7717H77.1112L74.8423 16.0557L74.0565 16.9514V19.7717H71.2209V10.2273Z"
|
||||
fill="#002435"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M89.1646 19.7717H92.0001V10.2273H89.1646V19.7717Z"
|
||||
fill="#002435"
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
69
components/Icons/Logos/ScandicGoLogo.tsx
Normal file
69
components/Icons/Logos/ScandicGoLogo.tsx
Normal file
@@ -0,0 +1,69 @@
|
||||
import { iconVariants } from "../variants"
|
||||
|
||||
import type { IconProps } from "@/types/components/icon"
|
||||
|
||||
export default function ScandicGoLogoIcon({
|
||||
className,
|
||||
color,
|
||||
...props
|
||||
}: IconProps) {
|
||||
const classNames = iconVariants({ className, color })
|
||||
return (
|
||||
<svg
|
||||
className={classNames}
|
||||
width="90"
|
||||
height="18"
|
||||
viewBox="0 0 90 18"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...props}
|
||||
>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M15.9257 15.1859C15.5404 15.2802 15.155 15.343 14.7698 15.3823C14.3844 15.4216 13.9992 15.4373 13.6139 15.4373C12.2332 15.4373 11.0934 15.1231 10.2987 14.4397C9.50405 13.7563 9.05444 12.7037 9.05444 11.227C9.05444 9.81317 9.52002 8.80773 10.3147 8.15575C11.1094 7.50377 12.2332 7.20525 13.5497 7.20525C13.935 7.20525 14.3202 7.22088 14.7056 7.2523C15.0908 7.28371 15.4762 7.33091 15.8615 7.39374V8.08503V8.77632C15.5725 8.74475 15.3156 8.71333 15.0668 8.68981C14.8179 8.66629 14.5772 8.6505 14.3202 8.6505C13.2606 8.6505 12.474 8.80773 11.9523 9.22402C11.4306 9.64031 11.1736 10.3158 11.1736 11.3527C11.1736 12.3267 11.4144 12.9866 11.9283 13.4029C12.4419 13.8191 13.2285 13.992 14.3202 13.992C14.6093 13.992 14.8661 13.9762 15.1149 13.9527C15.3638 13.9292 15.6047 13.8978 15.8615 13.8663V14.5261V15.1859H15.8936H15.9257Z"
|
||||
fill="#093021"
|
||||
/>
|
||||
<path
|
||||
d="M44.3738 5.76011H45.4012H46.4287V4.84891V3.93772H45.4012H44.3738V4.84891V5.76011ZM44.3738 15.249H45.4012H46.4287V11.2901V7.33117H45.4012H44.3738V11.2901V15.249Z"
|
||||
fill="#093021"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M40.7136 13.8663V11.2898V8.71342C40.5852 8.71342 40.4086 8.69764 40.2079 8.682C40.0072 8.66622 39.7825 8.65059 39.5578 8.65059C38.6266 8.65059 37.9844 8.8705 37.5751 9.3182C37.1657 9.7659 36.989 10.4416 36.989 11.3526C36.989 12.1695 37.1495 12.8294 37.543 13.285C37.9363 13.7406 38.5624 13.9919 39.4936 13.9919C39.6862 13.9919 39.8788 13.9763 40.0795 13.9526C40.2802 13.9291 40.4889 13.8977 40.7136 13.8663ZM42.7044 15.0602C42.5118 15.0916 42.0622 15.1702 41.4843 15.241C40.9063 15.3115 40.1998 15.3745 39.4936 15.3745C38.177 15.3745 37.0373 15.076 36.2264 14.4161C35.4158 13.7562 34.9341 12.7352 34.9341 11.2898C34.9341 9.90735 35.3676 8.8705 36.1301 8.17921C36.8927 7.48808 37.9844 7.14235 39.3009 7.14235C39.4936 7.14235 39.7504 7.15814 39.9993 7.17377C40.2481 7.18956 40.4889 7.20518 40.6494 7.20518V5.57144V3.93755H41.6769H42.7044V9.56952V15.0602Z"
|
||||
fill="#093021"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M33.5856 15.2488H32.5902H31.5948V12.6409V10.0331C31.5948 9.59313 31.4985 9.24756 31.2417 9.01187C30.9847 8.77618 30.5674 8.65052 29.9252 8.65052C29.4757 8.65052 29.0101 8.69772 28.657 8.74476C28.3037 8.79196 28.063 8.83916 28.063 8.83916V12.044V15.2488H27.0676H26.0723V11.4155V7.58225C26.1365 7.58225 26.8106 7.488 27.6536 7.39376C28.4963 7.29951 29.5078 7.20527 30.2463 7.20527C31.1454 7.20527 31.9962 7.28373 32.6223 7.66086C33.2484 8.03785 33.6498 8.71335 33.6498 9.90743V12.578V15.2488H33.6177H33.5856Z"
|
||||
fill="#093021"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M22.3475 14.0548V12.9237V11.7926H21.6251H20.999C20.3889 11.7926 19.8912 11.8083 19.546 11.9653C19.2009 12.1226 19.0083 12.4209 19.0083 12.9866C19.0083 13.552 19.249 13.8506 19.6104 14.0076C19.9716 14.1649 20.4531 14.1805 20.9348 14.1805C21.2238 14.1491 21.4485 14.1335 21.6653 14.1177C21.882 14.102 22.0907 14.0863 22.3475 14.0548ZM24.4025 15.2488C23.696 15.3116 23.0699 15.3588 22.4679 15.3902C21.866 15.4216 21.288 15.4373 20.6778 15.4373C19.6504 15.4373 18.7192 15.3588 18.045 14.9974C17.3707 14.6361 16.9534 13.992 16.9534 12.8609C16.9534 11.7612 17.467 11.18 18.2136 10.8657C18.9601 10.5515 19.9395 10.5043 20.8706 10.4729H21.585H22.3475C22.3475 9.78176 22.3314 9.31038 22.0586 9.01186C21.7856 8.71349 21.2559 8.58767 20.2284 8.58767C19.7146 8.58767 19.1848 8.63487 18.7032 8.6977C18.2215 8.76053 17.7881 8.83915 17.467 8.90198V8.17928V7.45657C17.8524 7.36233 18.3501 7.2995 18.8638 7.25245C19.3776 7.20525 19.9074 7.17384 20.3568 7.14242C21.5127 7.14242 22.5242 7.20525 23.2466 7.5666C23.969 7.92796 24.4025 8.58767 24.4025 9.78176V12.5152V15.2488Z"
|
||||
fill="#093021"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M54.5844 15.1859C54.1991 15.2802 53.8137 15.343 53.4285 15.3823C53.0431 15.4216 52.6579 15.4373 52.2726 15.4373C50.8918 15.4373 49.7521 15.1231 48.9574 14.4397C48.1627 13.7563 47.7131 12.7037 47.7131 11.227C47.7131 9.81317 48.1787 8.80773 48.9734 8.15575C49.7681 7.50377 50.8918 7.20525 52.2084 7.20525C52.5936 7.20525 52.9789 7.22088 53.3643 7.2523C53.7495 7.28371 54.1349 7.33091 54.5202 7.39374V8.08503V8.77632C54.2312 8.74475 53.9743 8.71333 53.7255 8.68981C53.4766 8.66629 53.2359 8.6505 52.9789 8.6505C51.9193 8.6505 51.1327 8.80773 50.611 9.22402C50.0893 9.64031 49.8323 10.3158 49.8323 11.3527C49.8323 12.3267 50.0731 12.9866 50.5869 13.4029C51.1006 13.8191 51.8872 13.992 52.9789 13.992C53.268 13.992 53.5248 13.9762 53.7736 13.9527C54.0225 13.9292 54.2633 13.8978 54.5202 13.8663V14.5261V15.1859H54.5523H54.5844Z"
|
||||
fill="#093021"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M8.02712 12.1068C8.02712 13.2693 7.56155 14.102 6.75074 14.644C5.94008 15.1859 4.7842 15.4373 3.40344 15.4373C2.50454 15.4373 1.7339 15.3588 1.16395 15.2723C0.593993 15.1859 0.224724 15.0917 0.128414 15.0603V14.2433V13.4264C0.449606 13.4892 0.94713 13.5992 1.50918 13.6935C2.07107 13.7877 2.69716 13.8663 3.27502 13.8663C3.85304 13.8663 4.51124 13.8035 5.02506 13.5836C5.53871 13.3635 5.90798 12.9866 5.90798 12.3581C5.90798 11.9497 5.74746 11.667 5.4424 11.4469C5.13734 11.227 4.68789 11.0699 4.10987 10.9129C3.88515 10.85 3.66042 10.7872 3.43554 10.7244C3.21082 10.6615 2.98609 10.5986 2.76137 10.5357C1.99073 10.3158 1.30043 10.0487 0.802744 9.61679C0.305062 9.18472 0 8.58767 0 7.70805C0 6.45114 0.513813 5.66576 1.32446 5.19438C2.13527 4.72315 3.24292 4.56592 4.43091 4.56592C5.13734 4.56592 5.77957 4.62875 6.26918 4.69947C6.7588 4.77019 7.09597 4.84881 7.19228 4.88022V5.63419V6.38831C7.06386 6.35689 6.7267 6.27843 6.26918 6.20771C5.81167 6.13698 5.23365 6.07415 4.62369 6.07415C4.04567 6.07415 3.41957 6.10557 2.93786 6.29406C2.45631 6.48255 2.11914 6.82827 2.11914 7.45657C2.11914 7.92796 2.31176 8.22648 2.64086 8.43849C2.96996 8.65066 3.43554 8.77632 3.98146 8.90198C4.23829 8.99623 4.49527 9.05906 4.7521 9.12189C5.00893 9.18472 5.26575 9.24755 5.52274 9.34179C6.19691 9.53028 6.82301 9.78176 7.28068 10.2059C7.73819 10.6301 8.02712 11.227 8.02712 12.1068Z"
|
||||
fill="#093021"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M59.0903 8.99215C59.0903 4.51876 62.6801 0.988525 67.4969 0.988525C69.9951 0.988525 72.1319 2.209 73.5742 3.86603L72.2456 4.97044C71.0678 3.61719 69.3886 2.69307 67.4969 2.69307C63.6173 2.69307 60.8345 5.48548 60.8345 8.99215C60.8345 12.1173 63.3815 15.3067 67.3756 15.3067C69.0106 15.3067 70.2829 14.7036 71.1681 13.9161C72.0193 13.1588 72.4748 12.2677 72.5817 11.6246C72.0576 11.7078 71.5506 11.7402 71.0722 11.7274C69.899 11.696 68.8017 11.3882 68.0713 10.7828C67.6966 10.4721 67.3972 10.0627 67.2805 9.56115C67.1623 9.05276 67.252 8.5359 67.5035 8.05595L67.5036 8.05592C67.9157 7.26968 68.6781 6.88342 69.4526 6.78634C70.2137 6.69094 71.0358 6.85988 71.7671 7.21185C72.6806 7.65153 73.5336 8.42169 73.9968 9.4646C75.1253 9.00516 76.2915 8.23634 77.3343 7.06067C77.4156 6.96121 77.4896 6.87635 77.5514 6.80547C77.5671 6.78744 77.582 6.77032 77.596 6.75409L78.9412 7.83893C78.8562 7.94218 78.7703 8.04309 78.6835 8.1417C78.3131 8.59935 77.8429 9.33605 77.8429 10.5372C77.8429 12.4859 79.4128 14.3635 81.9088 14.3635C83.9655 14.3635 85.7401 12.604 85.7533 10.4952C85.7549 10.2347 85.7317 9.98571 85.6873 9.74882C84.5315 10.0577 83.4564 10.0634 82.5452 9.84803C81.6076 9.62644 80.7973 9.15441 80.3252 8.48172C79.826 7.77059 79.7435 6.86655 80.2781 6.06155C80.7646 5.32882 81.5753 5.04031 82.354 5.02588C83.1277 5.01156 83.9529 5.25635 84.6936 5.67983C85.4354 6.10394 86.1373 6.73426 86.6533 7.54326C87.2472 7.23409 87.8705 6.81482 88.5089 6.25995L89.6681 7.5336C88.8868 8.21268 88.1015 8.73395 87.3331 9.11828C87.4418 9.55129 87.5005 10.0144 87.4974 10.5055V10.5056C87.4787 13.4987 84.978 16.068 81.9088 16.068C78.3884 16.068 76.0987 13.3665 76.0987 10.5372C76.0987 10.4624 76.1 10.3887 76.1026 10.3161C75.5253 10.6656 74.9391 10.944 74.3579 11.1581C74.3592 11.3235 74.3516 11.4929 74.3342 11.6662C74.219 12.8179 73.5004 14.1462 72.3422 15.1766C71.1617 16.2268 69.4787 17.0113 67.3756 17.0113C62.3043 17.0113 59.0903 12.9433 59.0903 8.99215ZM84.9773 8.1653C84.6481 7.73748 84.2415 7.39614 83.8129 7.15111C83.2889 6.85156 82.7769 6.7229 82.3871 6.73012C82.0025 6.73725 81.8237 6.86526 81.7412 6.98945L81.7412 6.9895C81.6259 7.16301 81.6245 7.3195 81.7635 7.51753C81.9295 7.75402 82.3144 8.03979 82.9552 8.19125C83.4942 8.31865 84.1851 8.33991 84.9773 8.1653ZM72.296 9.94307C72.0003 9.40392 71.5262 8.99598 70.9965 8.74099C70.5127 8.50815 70.035 8.43184 69.6745 8.47703C69.3274 8.52055 69.1463 8.66071 69.0559 8.833C68.9622 9.01184 68.9669 9.12117 68.9813 9.18328C68.9974 9.25222 69.0485 9.35761 69.1996 9.4829C69.5211 9.74936 70.1772 9.99827 71.1199 10.0235C71.4862 10.0333 71.8816 10.0085 72.296 9.94307Z"
|
||||
fill="#093021"
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
import { iconVariants } from "./variants"
|
||||
import { iconVariants } from "../variants"
|
||||
|
||||
import type { IconProps } from "@/types/components/icon"
|
||||
|
||||
@@ -82,6 +82,13 @@ export { default as LaundryMachineIcon } from "./LaundryMachine"
|
||||
export { default as LocalBarIcon } from "./LocalBar"
|
||||
export { default as LocationIcon } from "./Location"
|
||||
export { default as LockIcon } from "./Lock"
|
||||
export { default as DowntownCamperIcon } from "./Logos/DowntownCamper"
|
||||
export { default as GrandHotelOsloLogoIcon } from "./Logos/GrandHotelOslo"
|
||||
export { default as HaymarketIcon } from "./Logos/Haymarket"
|
||||
export { default as HotelNorgeIcon } from "./Logos/HotelNorge"
|
||||
export { default as MarskiLogoIcon } from "./Logos/Marski"
|
||||
export { default as ScandicGoLogoIcon } from "./Logos/ScandicGoLogo"
|
||||
export { default as ScandicLogoIcon } from "./Logos/ScandicLogo"
|
||||
export { default as MapIcon } from "./Map"
|
||||
export { default as MinusIcon } from "./Minus"
|
||||
export { default as MirrorIcon } from "./Mirror"
|
||||
@@ -104,7 +111,6 @@ export { default as RestaurantIcon } from "./Restaurant"
|
||||
export { default as RoomServiceIcon } from "./RoomService"
|
||||
export { default as SafetyBoxIcon } from "./SafetyBox"
|
||||
export { default as SaunaIcon } from "./Sauna"
|
||||
export { default as ScandicLogoIcon } from "./ScandicLogo"
|
||||
export { default as SearchIcon } from "./Search"
|
||||
export { default as ServiceIcon } from "./Service"
|
||||
export { default as ShoppingIcon } from "./Shopping"
|
||||
|
||||
@@ -71,6 +71,10 @@ p.caption {
|
||||
color: var(--Base-Text-High-contrast);
|
||||
}
|
||||
|
||||
.baseTextMediumContrast {
|
||||
color: var(--Base-Text-Medium-contrast);
|
||||
}
|
||||
|
||||
.red {
|
||||
color: var(--Scandic-Brand-Scandic-Red);
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ const config = {
|
||||
uiTextPlaceholder: styles.uiTextPlaceholder,
|
||||
disabled: styles.disabled,
|
||||
baseTextHighContrast: styles.baseTextHighContrast,
|
||||
baseTextMediumContrast: styles.baseTextMediumContrast,
|
||||
},
|
||||
textTransform: {
|
||||
uppercase: styles.uppercase,
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"ACCE": "Tilgængelighed",
|
||||
"ALLG": "Allergi",
|
||||
"About meetings & conferences": "About meetings & conferences",
|
||||
"About the hotel": "About the hotel",
|
||||
"About the hotel": "Om hotellet",
|
||||
"Accessibility": "Tilgængelighed",
|
||||
"Accessible Room": "Tilgængelighedsrum",
|
||||
"Activities": "Aktiviteter",
|
||||
@@ -98,7 +98,7 @@
|
||||
"Disabled booking options text": "Koder, checks og bonusnætter er endnu ikke tilgængelige på den nye hjemmeside.",
|
||||
"Discard changes": "Kassér ændringer",
|
||||
"Discard unsaved changes?": "Slette ændringer, der ikke er gemt?",
|
||||
"Distance to city centre": "{number}km til centrum",
|
||||
"Distance to city centre": "{number} km til centrum",
|
||||
"Distance to hotel": "Afstand til hotel",
|
||||
"Do you want to start the day with Scandics famous breakfast buffé?": "Vil du starte dagen med Scandics berømte morgenbuffet?",
|
||||
"Done": "Færdig",
|
||||
@@ -330,6 +330,7 @@
|
||||
"Terms and conditions": "Vilkår og betingelser",
|
||||
"Thank you": "Tak",
|
||||
"Theatre": "Teater",
|
||||
"There are no rooms available that match your request": "Der er ingen ledige værelser, der matcher din anmodning",
|
||||
"There are no transactions to display": "Der er ingen transaktioner at vise",
|
||||
"Things nearby HOTEL_NAME": "Ting i nærheden af {hotelName}",
|
||||
"To get the member price <span>{amount} {currency}</span>, log in or join when completing the booking.": "For at få medlemsprisen <span>{amount} {currency}</span>, log ind eller tilmeld dig, når du udfylder bookingen.",
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
"Disabled booking options text": "Codes, Schecks und Bonusnächte sind auf der neuen Website noch nicht verfügbar.",
|
||||
"Discard changes": "Änderungen verwerfen",
|
||||
"Discard unsaved changes?": "Nicht gespeicherte Änderungen verwerfen?",
|
||||
"Distance to city centre": "{number}km zum Stadtzentrum",
|
||||
"Distance to city centre": "{number} km zum Stadtzentrum",
|
||||
"Distance to hotel": "Entfernung zum Hotel",
|
||||
"Do you want to start the day with Scandics famous breakfast buffé?": "Möchten Sie den Tag mit Scandics berühmtem Frühstücksbuffet beginnen?",
|
||||
"Done": "Fertig",
|
||||
@@ -329,6 +329,7 @@
|
||||
"Terms and conditions": "Geschäftsbedingungen",
|
||||
"Thank you": "Danke",
|
||||
"Theatre": "Theater",
|
||||
"There are no rooms available that match your request": "Es sind keine Zimmer verfügbar, die Ihrer Anfrage entsprechen",
|
||||
"There are no transactions to display": "Es sind keine Transaktionen zum Anzeigen vorhanden",
|
||||
"Things nearby HOTEL_NAME": "Dinge in der Nähe von {hotelName}",
|
||||
"To get the member price <span>{amount} {currency}</span>, log in or join when completing the booking.": "Um den Mitgliederpreis von <span>{amount} {currency}</span> zu erhalten, loggen Sie sich ein oder treten Sie Scandic Friends bei, wenn Sie die Buchung abschließen.",
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
"Disabled booking options text": "Codes, cheques and reward nights aren't available on the new website yet.",
|
||||
"Discard changes": "Discard changes",
|
||||
"Discard unsaved changes?": "Discard unsaved changes?",
|
||||
"Distance to city centre": "{number}km to city centre",
|
||||
"Distance to city centre": "{number} km to city centre",
|
||||
"Distance to hotel": "Distance to hotel",
|
||||
"Do you want to start the day with Scandics famous breakfast buffé?": "Do you want to start the day with Scandics famous breakfast buffé?",
|
||||
"Done": "Done",
|
||||
@@ -359,6 +359,7 @@
|
||||
"Terms and conditions": "Terms and conditions",
|
||||
"Thank you": "Thank you",
|
||||
"Theatre": "Theatre",
|
||||
"There are no rooms available that match your request": "There are no rooms available that match your request",
|
||||
"There are no transactions to display": "There are no transactions to display",
|
||||
"Things nearby HOTEL_NAME": "Things nearby {hotelName}",
|
||||
"To get the member price <span>{amount} {currency}</span>, log in or join when completing the booking.": "To get the member price <span>{amount} {currency}</span>, log in or join when completing the booking.",
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
"Disabled booking options text": "Koodit, sekit ja palkintoillat eivät ole vielä saatavilla uudella verkkosivustolla.",
|
||||
"Discard changes": "Hylkää muutokset",
|
||||
"Discard unsaved changes?": "Hylkäätkö tallentamattomat muutokset?",
|
||||
"Distance to city centre": "{number}km Etäisyys kaupunkiin",
|
||||
"Distance to city centre": "{number} km Etäisyys kaupunkiin",
|
||||
"Distance to hotel": "Etäisyys hotelliin",
|
||||
"Do you want to start the day with Scandics famous breakfast buffé?": "Haluatko aloittaa päiväsi Scandicsin kuuluisalla aamiaisbuffella?",
|
||||
"Done": "Valmis",
|
||||
@@ -331,6 +331,7 @@
|
||||
"Terms and conditions": "Käyttöehdot",
|
||||
"Thank you": "Kiitos",
|
||||
"Theatre": "Teatteri",
|
||||
"There are no rooms available that match your request": "Pyyntöäsi vastaavia huoneita ei ole saatavilla",
|
||||
"There are no transactions to display": "Näytettäviä tapahtumia ei ole",
|
||||
"Things nearby HOTEL_NAME": "Lähellä olevia asioita {hotelName}",
|
||||
"To get the member price <span>{amount} {currency}</span>, log in or join when completing the booking.": "Jäsenhintaan saavat sisäänkirjautuneet tai liittyneet jäsenet.",
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
"Disabled booking options text": "Koder, checks og belønningsnætter er enda ikke tilgjengelige på den nye nettsiden.",
|
||||
"Discard changes": "Forkaste endringer",
|
||||
"Discard unsaved changes?": "Forkaste endringer som ikke er lagret?",
|
||||
"Distance to city centre": "{number}km til sentrum",
|
||||
"Distance to city centre": "{number} km til sentrum",
|
||||
"Distance to hotel": "Avstand til hotell",
|
||||
"Do you want to start the day with Scandics famous breakfast buffé?": "Vil du starte dagen med Scandics berømte frokostbuffé?",
|
||||
"Done": "Ferdig",
|
||||
@@ -328,6 +328,7 @@
|
||||
"Terms and conditions": "Vilkår og betingelser",
|
||||
"Thank you": "Takk",
|
||||
"Theatre": "Teater",
|
||||
"There are no rooms available that match your request": "Det er ingen tilgjengelige rom som samsvarer med forespørselen din",
|
||||
"There are no transactions to display": "Det er ingen transaksjoner å vise",
|
||||
"Things nearby HOTEL_NAME": "Ting i nærheten av {hotelName}",
|
||||
"To get the member price <span>{amount} {currency}</span>, log in or join when completing the booking.": "For å få medlemsprisen <span>{amount} {currency}</span>, logg inn eller bli med når du fullfører bestillingen.",
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
"Disabled booking options text": "Koder, bonuscheckar och belöningsnätter är inte tillgängliga på den nya webbplatsen än.",
|
||||
"Discard changes": "Ignorera ändringar",
|
||||
"Discard unsaved changes?": "Vill du ignorera ändringar som inte har sparats?",
|
||||
"Distance to city centre": "{number}km till centrum",
|
||||
"Distance to city centre": "{number} km till centrum",
|
||||
"Distance to hotel": "Avstånd till hotell",
|
||||
"Do you want to start the day with Scandics famous breakfast buffé?": "Vill du starta dagen med Scandics berömda frukostbuffé?",
|
||||
"Done": "Klar",
|
||||
@@ -328,6 +328,7 @@
|
||||
"Terms and conditions": "Allmänna villkor",
|
||||
"Thank you": "Tack",
|
||||
"Theatre": "Teater",
|
||||
"There are no rooms available that match your request": "Det finns inga tillgängliga rum som matchar din förfrågan",
|
||||
"There are no transactions to display": "Det finns inga transaktioner att visa",
|
||||
"Things nearby HOTEL_NAME": "Saker i närheten av {hotelName}",
|
||||
"To get the member price <span>{amount} {currency}</span>, log in or join when completing the booking.": "För att få medlemsprisen <span>{amount} {currency}</span>, logga in eller bli medlem när du slutför bokningen.",
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
import type { HotelsAvailabilityPrices } from "@/server/routers/hotels/output"
|
||||
|
||||
export type HotelPriceListProps = {
|
||||
price: HotelsAvailabilityPrices
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import { Hotel } from "@/types/hotel"
|
||||
|
||||
export type HotelLogoProps = {
|
||||
hotelId: Hotel["operaId"]
|
||||
hotelType: Hotel["hotelType"]
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
export type PriceCardProps = {
|
||||
currency: string
|
||||
memberAmount?: string | undefined
|
||||
regularAmount?: string | undefined
|
||||
}
|
||||
3
types/components/hotelReservation/tripAdvisorProps.ts
Normal file
3
types/components/hotelReservation/tripAdvisorProps.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export type TripAdvisorProps = {
|
||||
rating: number
|
||||
}
|
||||
7
types/enums/signatureHotel.ts
Normal file
7
types/enums/signatureHotel.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
export enum SignatureHotelEnum {
|
||||
DowntownCamper = "879",
|
||||
GrandHotelOslo = "340",
|
||||
Haymarket = "890",
|
||||
HotelNorge = "785",
|
||||
Marski = "605",
|
||||
}
|
||||
Reference in New Issue
Block a user