diff --git a/components/HotelReservation/EnterDetails/Details/SpecialRequests/index.tsx b/components/HotelReservation/EnterDetails/Details/SpecialRequests/index.tsx
new file mode 100644
index 000000000..f62688452
--- /dev/null
+++ b/components/HotelReservation/EnterDetails/Details/SpecialRequests/index.tsx
@@ -0,0 +1,90 @@
+import { useState } from "react"
+import { useIntl } from "react-intl"
+
+import { ChevronDownIcon } from "@/components/Icons"
+import Divider from "@/components/TempDesignSystem/Divider"
+import Select from "@/components/TempDesignSystem/Form/Select"
+import TextArea from "@/components/TempDesignSystem/Form/TextArea"
+import Footnote from "@/components/TempDesignSystem/Text/Footnote"
+
+import { ElevatorPreference, FloorPreference } from "./../schema"
+
+import styles from "./specialRequests.module.css"
+
+export default function SpecialRequests() {
+ const [isOpen, setIsOpen] = useState(false)
+ const intl = useIntl()
+
+ const noPreferenceItem = {
+ value: "",
+ label: intl.formatMessage({
+ id: "No preference",
+ }),
+ }
+
+ function toggleRequests() {
+ setIsOpen((prevVal) => !prevVal)
+ }
+
+ return (
+
+
+
+
+ )
+}
diff --git a/components/HotelReservation/EnterDetails/Details/SpecialRequests/specialRequests.module.css b/components/HotelReservation/EnterDetails/Details/SpecialRequests/specialRequests.module.css
new file mode 100644
index 000000000..63ee7f2a4
--- /dev/null
+++ b/components/HotelReservation/EnterDetails/Details/SpecialRequests/specialRequests.module.css
@@ -0,0 +1,55 @@
+.requests {
+ --header-height: 50px;
+
+ display: grid;
+ grid-template-rows: var(--header-height) 0fr;
+ transition: 0.3s ease-out;
+ grid-column: 1 / -1;
+}
+
+.toggle {
+ display: grid;
+ grid-template-areas:
+ "header chevron"
+ "divider divider";
+ grid-template-columns: 1fr auto;
+ background-color: transparent;
+ gap: var(--Spacing-x1);
+ border: none;
+ width: 100%;
+ cursor: pointer;
+ margin: var(--Spacing-x2) 0;
+}
+
+.header {
+ grid-area: header;
+ align-self: flex-start;
+}
+
+.chevron {
+ grid-area: chevron;
+}
+
+.divider {
+ grid-area: divider;
+ border-top: 1px solid var(--Color-gray-300);
+}
+
+.requests[data-requests-open="true"] .chevron {
+ transform: rotate(180deg);
+}
+
+.content {
+ overflow: hidden;
+}
+
+.contentWrapper {
+ padding-top: var(--Spacing-x3);
+ display: grid;
+ gap: var(--Spacing-x2);
+ width: 100%;
+}
+
+.requests[data-requests-open="true"] {
+ grid-template-rows: var(--header-height) 1fr;
+}
diff --git a/components/HotelReservation/EnterDetails/Details/index.tsx b/components/HotelReservation/EnterDetails/Details/index.tsx
index 5ecc9e003..aee04241a 100644
--- a/components/HotelReservation/EnterDetails/Details/index.tsx
+++ b/components/HotelReservation/EnterDetails/Details/index.tsx
@@ -10,18 +10,12 @@ import Button from "@/components/TempDesignSystem/Button"
import CountrySelect from "@/components/TempDesignSystem/Form/Country"
import Input from "@/components/TempDesignSystem/Form/Input"
import Phone from "@/components/TempDesignSystem/Form/Phone"
-import Select from "@/components/TempDesignSystem/Form/Select"
-import TextArea from "@/components/TempDesignSystem/Form/TextArea"
import Footnote from "@/components/TempDesignSystem/Text/Footnote"
import JoinScandicFriendsCard from "./JoinScandicFriendsCard"
-import {
- ElevatorPreference,
- FloorPreference,
- guestDetailsSchema,
- signedInDetailsSchema,
-} from "./schema"
+import { guestDetailsSchema, signedInDetailsSchema } from "./schema"
import Signup from "./Signup"
+import SpecialRequests from "./SpecialRequests"
import styles from "./details.module.css"
@@ -57,13 +51,6 @@ export default function Details({ user, memberPrice }: DetailsProps) {
},
})
- const noPreferenceItem = {
- value: "",
- label: intl.formatMessage({
- id: "No preference",
- }),
- }
-
const onSubmit = useCallback(
(values: DetailsSchema) => {
updateDetails(values)
@@ -130,57 +117,7 @@ export default function Details({ user, memberPrice }: DetailsProps) {
)}
-
- {intl.formatMessage({ id: "Special requests" })}
-
-
-
-
+