diff --git a/components/HotelReservation/TripAdvisorChip/index.tsx b/components/HotelReservation/TripAdvisorChip/index.tsx
new file mode 100644
index 000000000..96005bd60
--- /dev/null
+++ b/components/HotelReservation/TripAdvisorChip/index.tsx
@@ -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 (
+
+
+
{rating}
+
+ )
+}
diff --git a/components/HotelReservation/TripAdvisorChip/tripAdvisorChip.module.css b/components/HotelReservation/TripAdvisorChip/tripAdvisorChip.module.css
new file mode 100644
index 000000000..a5328e1a3
--- /dev/null
+++ b/components/HotelReservation/TripAdvisorChip/tripAdvisorChip.module.css
@@ -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);
+}
diff --git a/components/Icons/Logos/DowntownCamper.tsx b/components/Icons/Logos/DowntownCamper.tsx
new file mode 100644
index 000000000..97baf9820
--- /dev/null
+++ b/components/Icons/Logos/DowntownCamper.tsx
@@ -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 (
+
+ )
+}
diff --git a/components/Icons/Logos/GrandHotelOslo.tsx b/components/Icons/Logos/GrandHotelOslo.tsx
new file mode 100644
index 000000000..1cac092f7
--- /dev/null
+++ b/components/Icons/Logos/GrandHotelOslo.tsx
@@ -0,0 +1,27 @@
+import { iconVariants } from "../variants"
+
+import type { IconProps } from "@/types/components/icon"
+
+export default function GrandHotelOsloLogoIcon({
+ className,
+ color,
+ ...props
+}: IconProps) {
+ const classNames = iconVariants({ className, color })
+ return (
+
+ )
+}
diff --git a/components/Icons/Logos/Haymarket.tsx b/components/Icons/Logos/Haymarket.tsx
new file mode 100644
index 000000000..00d8519fb
--- /dev/null
+++ b/components/Icons/Logos/Haymarket.tsx
@@ -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 (
+
+ )
+}
diff --git a/components/Icons/Logos/HotelNorge.tsx b/components/Icons/Logos/HotelNorge.tsx
new file mode 100644
index 000000000..daa5ff940
--- /dev/null
+++ b/components/Icons/Logos/HotelNorge.tsx
@@ -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 (
+
+ )
+}
diff --git a/components/Icons/Logos/Marski.tsx b/components/Icons/Logos/Marski.tsx
new file mode 100644
index 000000000..57473a53a
--- /dev/null
+++ b/components/Icons/Logos/Marski.tsx
@@ -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 (
+
+ )
+}
diff --git a/components/Icons/Logos/ScandicGoLogo.tsx b/components/Icons/Logos/ScandicGoLogo.tsx
new file mode 100644
index 000000000..8878cf16c
--- /dev/null
+++ b/components/Icons/Logos/ScandicGoLogo.tsx
@@ -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 (
+
+ )
+}
diff --git a/components/Icons/ScandicLogo.tsx b/components/Icons/Logos/ScandicLogo.tsx
similarity index 98%
rename from components/Icons/ScandicLogo.tsx
rename to components/Icons/Logos/ScandicLogo.tsx
index d3710f666..cdb992753 100644
--- a/components/Icons/ScandicLogo.tsx
+++ b/components/Icons/Logos/ScandicLogo.tsx
@@ -1,4 +1,4 @@
-import { iconVariants } from "./variants"
+import { iconVariants } from "../variants"
import type { IconProps } from "@/types/components/icon"
diff --git a/components/Icons/index.tsx b/components/Icons/index.tsx
index 2a30ffe78..fc6e5c069 100644
--- a/components/Icons/index.tsx
+++ b/components/Icons/index.tsx
@@ -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"
diff --git a/components/TempDesignSystem/Text/Caption/caption.module.css b/components/TempDesignSystem/Text/Caption/caption.module.css
index 3eb44199a..7d2cbe752 100644
--- a/components/TempDesignSystem/Text/Caption/caption.module.css
+++ b/components/TempDesignSystem/Text/Caption/caption.module.css
@@ -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);
}
diff --git a/components/TempDesignSystem/Text/Caption/variants.ts b/components/TempDesignSystem/Text/Caption/variants.ts
index b0672430b..96cfab491 100644
--- a/components/TempDesignSystem/Text/Caption/variants.ts
+++ b/components/TempDesignSystem/Text/Caption/variants.ts
@@ -24,6 +24,7 @@ const config = {
uiTextPlaceholder: styles.uiTextPlaceholder,
disabled: styles.disabled,
baseTextHighContrast: styles.baseTextHighContrast,
+ baseTextMediumContrast: styles.baseTextMediumContrast,
},
textTransform: {
uppercase: styles.uppercase,
diff --git a/i18n/dictionaries/da.json b/i18n/dictionaries/da.json
index 5d32423eb..4486b9e51 100644
--- a/i18n/dictionaries/da.json
+++ b/i18n/dictionaries/da.json
@@ -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 {amount} {currency}, log in or join when completing the booking.": "For at få medlemsprisen {amount} {currency}, log ind eller tilmeld dig, når du udfylder bookingen.",
diff --git a/i18n/dictionaries/de.json b/i18n/dictionaries/de.json
index 90c115061..ee34c0c1b 100644
--- a/i18n/dictionaries/de.json
+++ b/i18n/dictionaries/de.json
@@ -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 {amount} {currency}, log in or join when completing the booking.": "Um den Mitgliederpreis von {amount} {currency} zu erhalten, loggen Sie sich ein oder treten Sie Scandic Friends bei, wenn Sie die Buchung abschließen.",
diff --git a/i18n/dictionaries/en.json b/i18n/dictionaries/en.json
index 44f400079..6d3712067 100644
--- a/i18n/dictionaries/en.json
+++ b/i18n/dictionaries/en.json
@@ -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 {amount} {currency}, log in or join when completing the booking.": "To get the member price {amount} {currency}, log in or join when completing the booking.",
diff --git a/i18n/dictionaries/fi.json b/i18n/dictionaries/fi.json
index fb538db4b..a067b87f5 100644
--- a/i18n/dictionaries/fi.json
+++ b/i18n/dictionaries/fi.json
@@ -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 {amount} {currency}, log in or join when completing the booking.": "Jäsenhintaan saavat sisäänkirjautuneet tai liittyneet jäsenet.",
diff --git a/i18n/dictionaries/no.json b/i18n/dictionaries/no.json
index 98dadb098..98d778f4c 100644
--- a/i18n/dictionaries/no.json
+++ b/i18n/dictionaries/no.json
@@ -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 {amount} {currency}, log in or join when completing the booking.": "For å få medlemsprisen {amount} {currency}, logg inn eller bli med når du fullfører bestillingen.",
diff --git a/i18n/dictionaries/sv.json b/i18n/dictionaries/sv.json
index 074c500e6..01c293426 100644
--- a/i18n/dictionaries/sv.json
+++ b/i18n/dictionaries/sv.json
@@ -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 {amount} {currency}, log in or join when completing the booking.": "För att få medlemsprisen {amount} {currency}, logga in eller bli medlem när du slutför bokningen.",
diff --git a/types/components/hotelReservation/selectHotel/hotePriceListProps.ts b/types/components/hotelReservation/selectHotel/hotePriceListProps.ts
new file mode 100644
index 000000000..2464fad43
--- /dev/null
+++ b/types/components/hotelReservation/selectHotel/hotePriceListProps.ts
@@ -0,0 +1,5 @@
+import type { HotelsAvailabilityPrices } from "@/server/routers/hotels/output"
+
+export type HotelPriceListProps = {
+ price: HotelsAvailabilityPrices
+}
diff --git a/types/components/hotelReservation/selectHotel/hotelLogoProps.ts b/types/components/hotelReservation/selectHotel/hotelLogoProps.ts
new file mode 100644
index 000000000..8f19490a6
--- /dev/null
+++ b/types/components/hotelReservation/selectHotel/hotelLogoProps.ts
@@ -0,0 +1,6 @@
+import { Hotel } from "@/types/hotel"
+
+export type HotelLogoProps = {
+ hotelId: Hotel["operaId"]
+ hotelType: Hotel["hotelType"]
+}
diff --git a/types/components/hotelReservation/selectHotel/priceCardProps.ts b/types/components/hotelReservation/selectHotel/priceCardProps.ts
new file mode 100644
index 000000000..d339b4a06
--- /dev/null
+++ b/types/components/hotelReservation/selectHotel/priceCardProps.ts
@@ -0,0 +1,5 @@
+export type PriceCardProps = {
+ currency: string
+ memberAmount?: string | undefined
+ regularAmount?: string | undefined
+}
diff --git a/types/components/hotelReservation/tripAdvisorProps.ts b/types/components/hotelReservation/tripAdvisorProps.ts
new file mode 100644
index 000000000..62636cdcc
--- /dev/null
+++ b/types/components/hotelReservation/tripAdvisorProps.ts
@@ -0,0 +1,3 @@
+export type TripAdvisorProps = {
+ rating: number
+}
diff --git a/types/enums/signatureHotel.ts b/types/enums/signatureHotel.ts
new file mode 100644
index 000000000..1f5b68d6a
--- /dev/null
+++ b/types/enums/signatureHotel.ts
@@ -0,0 +1,7 @@
+export enum SignatureHotelEnum {
+ DowntownCamper = "879",
+ GrandHotelOslo = "340",
+ Haymarket = "890",
+ HotelNorge = "785",
+ Marski = "605",
+}