-
-
+
+
+
{intl.formatMessage({
id: "common.address",
defaultMessage: "Address",
})}
-
-
-
- {hotelAddress.streetAddress}
- {hotelAddress.city}
-
-
-
-
-
+
+
+
{hotelAddress.streetAddress}
+
{hotelAddress.city}
+
+
+
+
{intl.formatMessage({
id: "common.drivingDirections",
defaultMessage: "Driving directions",
})}
-
-
- {intl.formatMessage({
- id: "common.googleMaps",
- defaultMessage: "Google Maps",
- })}
-
-
-
-
+
+ {intl.formatMessage({
+ id: "common.googleMaps",
+ defaultMessage: "Google Maps",
+ })}
+
+
+
{intl.formatMessage({
id: "common.contactUs",
defaultMessage: "Contact us",
})}
-
-
- {contact.phoneNumber}
-
-
-
- {socials.instagram || socials.facebook ? (
-
-
+
+ {contact.phoneNumber}
+
+
+
+ {socials.instagram || socials.facebook ? (
+
{intl.formatMessage({
id: "common.followUs",
defaultMessage: "Follow us",
})}
-
-
- {socials.instagram && (
-
-
-
- )}
- {socials.facebook && (
-
-
-
- )}
+
+ {socials.instagram && (
+
+
+
+ )}
+ {socials.facebook && (
+
+
+
+ )}
+
-
- ) : null}
-
-
+ ) : null}
+
{intl.formatMessage({
id: "common.email",
defaultMessage: "Email",
})}
-
-
- {contact.email}
-
-
- {ecoLabels.nordicEcoLabel && (
-
-
-
+
+ {contact.email}
+
+
+ {ecoLabels.nordicEcoLabel && (
+
+
-
+
{intl.formatMessage({
id: "common.nordicSwanEcolabel",
@@ -152,12 +131,12 @@ export default async function ContactInformation({
})}
{ecoLabels.svanenEcoLabelCertificateNumber}
-
+
-
- )}
-
+ )}
+
+
)
}
diff --git a/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/Activities/activities.module.css b/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/Activities/activities.module.css
index 841d6848e..06827f4da 100644
--- a/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/Activities/activities.module.css
+++ b/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/Activities/activities.module.css
@@ -1,7 +1,7 @@
.buttonContainer {
background-color: var(--Background-Primary);
- border-top: 1px solid var(--Base-Border-Subtle);
- padding: var(--Spacing-x4) var(--Spacing-x2);
+ border-top: 1px solid var(--Border-Default);
+ padding: var(--Space-x4) var(--Space-x2);
width: 100%;
position: absolute;
left: 0;
diff --git a/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/Activities/index.tsx b/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/Activities/index.tsx
index 6dc4c2693..94d985555 100644
--- a/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/Activities/index.tsx
+++ b/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/Activities/index.tsx
@@ -1,7 +1,6 @@
-import Link from "@scandic-hotels/design-system/Link"
-import { OldDSButton as Button } from "@scandic-hotels/design-system/OldDSButton"
-import Preamble from "@scandic-hotels/design-system/Preamble"
+import ButtonLink from "@scandic-hotels/design-system/ButtonLink"
import SidePeek from "@scandic-hotels/design-system/SidePeek"
+import { Typography } from "@scandic-hotels/design-system/Typography"
import { getIntl } from "@/i18n"
@@ -28,13 +27,19 @@ export default async function ActivitiesSidePeek({
defaultMessage: "Close",
})}
>
-
{preamble}
+
+ {preamble}
+
-
+
+ {sidepeekCTA}
+
)
diff --git a/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/MeetingsAndConferences/index.tsx b/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/MeetingsAndConferences/index.tsx
index e2c9f2ef9..ee7c62be7 100644
--- a/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/MeetingsAndConferences/index.tsx
+++ b/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/MeetingsAndConferences/index.tsx
@@ -47,17 +47,16 @@ export default async function MeetingsAndConferencesSidePeek({
) : null}
{descriptions?.medium && (
-
+
{descriptions.medium}
)}
{roomText || seatingText ? (
-
-
- {roomText}
- {roomText && seatingText &&
}
- {seatingText}
-
+
+
+ {roomText ? {roomText} : null}
+ {seatingText ? {seatingText} : null}
+
) : null}
diff --git a/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/MeetingsAndConferences/meetingsAndConferences.module.css b/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/MeetingsAndConferences/meetingsAndConferences.module.css
index 0bfd52ced..6b56ba6ff 100644
--- a/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/MeetingsAndConferences/meetingsAndConferences.module.css
+++ b/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/MeetingsAndConferences/meetingsAndConferences.module.css
@@ -1,15 +1,15 @@
.wrapper {
display: grid;
- gap: var(--Spacing-x3);
+ gap: var(--Space-x3);
margin-bottom: calc(
- var(--Spacing-x4) * 2 + 80px
+ var(--Space-x4) * 2 + 80px
); /* Creates space between the wrapper and buttonContainer */
}
.buttonContainer {
background-color: var(--Background-Primary);
- border-top: 1px solid var(--Base-Border-Subtle);
- padding: var(--Spacing-x4) var(--Spacing-x2);
+ border-top: 1px solid var(--Border-Default);
+ padding: var(--Space-x4) var(--Space-x2);
width: 100%;
position: absolute;
left: 0;
@@ -17,5 +17,6 @@
}
.capacityDetails {
+ display: grid;
color: var(--Text-Secondary);
}
diff --git a/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/RestaurantBar/RestaurantBarItem/index.tsx b/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/RestaurantBar/RestaurantBarItem/index.tsx
index bee68cd62..d4d712b0c 100644
--- a/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/RestaurantBar/RestaurantBarItem/index.tsx
+++ b/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/RestaurantBar/RestaurantBarItem/index.tsx
@@ -1,6 +1,6 @@
import { MaterialIcon } from "@scandic-hotels/design-system/Icons/MaterialIcon"
-import Link from "@scandic-hotels/design-system/Link"
import OpeningHours from "@scandic-hotels/design-system/OpeningHours"
+import { TextLink } from "@scandic-hotels/design-system/TextLink"
import { Typography } from "@scandic-hotels/design-system/Typography"
import { getIntl } from "@/i18n"
@@ -81,20 +81,14 @@ export default async function RestaurantBarItem({
{menus.map(({ name, url }) => (
-
-
+
{name}
-
+
))}
diff --git a/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/RestaurantBar/restaurantBar.module.css b/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/RestaurantBar/restaurantBar.module.css
index 3da2da7d8..81726aa35 100644
--- a/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/RestaurantBar/restaurantBar.module.css
+++ b/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/RestaurantBar/restaurantBar.module.css
@@ -1,9 +1,9 @@
.content {
display: grid;
- gap: var(--Spacing-x4);
+ gap: var(--Space-x4);
}
.item:not(:last-child) {
- border-bottom: 1px solid var(--Base-Border-Subtle);
- padding-bottom: var(--Spacing-x4);
+ border-bottom: 1px solid var(--Border-Default);
+ padding-bottom: var(--Space-x4);
}
diff --git a/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/Room/RoomFacilities/roomFacilities.module.css b/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/Room/RoomFacilities/roomFacilities.module.css
index 03fcb3d6f..d82e26032 100644
--- a/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/Room/RoomFacilities/roomFacilities.module.css
+++ b/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/Room/RoomFacilities/roomFacilities.module.css
@@ -5,8 +5,8 @@
.item {
display: flex;
- gap: var(--Spacing-x1);
- margin-bottom: var(--Spacing-x-half);
+ gap: var(--Space-x1);
+ margin-bottom: var(--Space-x05);
align-items: self-start;
justify-content: flex-start;
color: var(--Text-Secondary);
@@ -32,7 +32,7 @@
@media screen and (min-width: 768px) {
.facilities {
column-count: 2;
- column-gap: var(--Spacing-x2);
+ column-gap: var(--Space-x2);
}
.ctaWrapper {
diff --git a/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/Room/room.module.css b/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/Room/room.module.css
index 7e394c599..9dbb3c850 100644
--- a/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/Room/room.module.css
+++ b/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/Room/room.module.css
@@ -1,15 +1,15 @@
.content {
display: grid;
- gap: var(--Spacing-x2);
+ gap: var(--Space-x2);
position: relative;
margin-bottom: calc(
- var(--Spacing-x4) * 2 + 80px
+ var(--Space-x4) * 2 + 80px
); /* Creates space between the wrapper and buttonContainer */
}
.innerContent {
display: grid;
- gap: var(--Spacing-x-one-and-half);
+ gap: var(--Space-x15);
}
.guests {
@@ -24,8 +24,8 @@
.buttonContainer {
background-color: var(--Background-Primary);
- border-top: 1px solid var(--Base-Border-Subtle);
- padding: var(--Spacing-x4) var(--Spacing-x2);
+ border-top: 1px solid var(--Border-Default);
+ padding: var(--Space-x4) var(--Space-x2);
width: 100%;
position: absolute;
left: 0;
diff --git a/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/WellnessAndExercise/wellnessAndExercise.module.css b/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/WellnessAndExercise/wellnessAndExercise.module.css
index c34410dc1..4b44588fc 100644
--- a/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/WellnessAndExercise/wellnessAndExercise.module.css
+++ b/apps/scandic-web/components/ContentType/HotelPage/SidePeeks/WellnessAndExercise/wellnessAndExercise.module.css
@@ -1,7 +1,7 @@
.wrapper {
display: flex;
flex-direction: column;
- gap: var(--Spacing-x4);
+ gap: var(--Space-x4);
/* Creates space between the wrapper and buttonContainer depending on which buttons are present */
&.hasSpaPage,
@@ -16,12 +16,12 @@
.buttonContainer {
background-color: var(--Background-Primary);
- border-top: 1px solid var(--Base-Border-Subtle);
- padding: var(--Spacing-x4) var(--Spacing-x2);
+ border-top: 1px solid var(--Border-Default);
+ padding: var(--Space-x4) var(--Space-x2);
width: 100%;
position: absolute;
left: 0;
bottom: 0;
display: grid;
- gap: var(--Spacing-x2);
+ gap: var(--Space-x2);
}
diff --git a/apps/scandic-web/components/ContentType/HotelPage/TabNavigation/index.tsx b/apps/scandic-web/components/ContentType/HotelPage/TabNavigation/index.tsx
index 7c3709c8e..02b923dee 100644
--- a/apps/scandic-web/components/ContentType/HotelPage/TabNavigation/index.tsx
+++ b/apps/scandic-web/components/ContentType/HotelPage/TabNavigation/index.tsx
@@ -26,9 +26,13 @@ import { HotelHashValues } from "@/types/enums/hotelPage"
interface TabNavigationProps {
pageSections: HotelPageSections
+ isThemed: boolean
}
-export default function TabNavigation({ pageSections }: TabNavigationProps) {
+export default function TabNavigation({
+ pageSections,
+ isThemed,
+}: TabNavigationProps) {
const [activeHash, setActiveHash] = useState()
const tabNavigationRef = useRef(null)
const tabRefs = useMemo(() => new Map(), [])
@@ -94,6 +98,7 @@ export default function TabNavigation({ pageSections }: TabNavigationProps) {
nav {
diff --git a/apps/scandic-web/components/ContentType/HotelPage/index.tsx b/apps/scandic-web/components/ContentType/HotelPage/index.tsx
index e88850170..dfccac83a 100644
--- a/apps/scandic-web/components/ContentType/HotelPage/index.tsx
+++ b/apps/scandic-web/components/ContentType/HotelPage/index.tsx
@@ -1,10 +1,11 @@
+import { cx } from "class-variance-authority"
+import NextLink from "next/link"
import { notFound } from "next/navigation"
import { Suspense } from "react"
import { dt } from "@scandic-hotels/common/dt"
import { safeTry } from "@scandic-hotels/common/utils/safeTry"
import { Alert } from "@scandic-hotels/design-system/Alert"
-import Link from "@scandic-hotels/design-system/Link"
import { TrackingSDK } from "@scandic-hotels/tracking/TrackingSDK"
import { type HotelPageData } from "@scandic-hotels/trpc/types/hotelPage"
@@ -18,6 +19,7 @@ import { getIntl } from "@/i18n"
import { getLang } from "@/i18n/serverContext"
import { setFacilityCards } from "@/utils/facilityCards"
import { generateHotelSchema } from "@/utils/jsonSchemas"
+import { Theme } from "@/utils/theme/types"
import MapCard from "./Map/MapCard"
import MapWithCardWrapper from "./Map/MapWithCard"
@@ -57,11 +59,13 @@ import { HotelHashValues } from "@/types/enums/hotelPage"
interface HotelPageProps {
hotelData: HotelData
hotelPageData: HotelPageData
+ theme: Theme
}
export default async function HotelPage({
hotelData,
hotelPageData,
+ theme,
}: HotelPageProps) {
const lang = await getLang()
const intl = await getIntl()
@@ -147,6 +151,8 @@ export default async function HotelPage({
)
const trackingHotelData = getTrackingHotelData(hotelData.hotel)
+ const isThemed = theme !== Theme.scandic
+
return (
-
+
}>
-
+
{images?.length ? (
) : null}
-
+
@@ -175,6 +188,7 @@ export default async function HotelPage({
address={address}
tripAdvisor={ratings?.tripAdvisor}
contactInformation={contactInformation}
+ isThemed={isThemed}
/>
@@ -232,14 +246,14 @@ export default async function HotelPage({