diff --git a/components/Forms/BookingWidget/FormContent/index.tsx b/components/Forms/BookingWidget/FormContent/index.tsx
index c7f990c38..4c50474bd 100644
--- a/components/Forms/BookingWidget/FormContent/index.tsx
+++ b/components/Forms/BookingWidget/FormContent/index.tsx
@@ -7,6 +7,7 @@ import { dt } from "@/lib/dt"
import DatePicker from "@/components/DatePicker"
import { SearchIcon } from "@/components/Icons"
import Button from "@/components/TempDesignSystem/Button"
+import GuestsRoomsPickerForm from "@/components/GuestsRoomsPicker"
import Caption from "@/components/TempDesignSystem/Text/Caption"
import Input from "./Input"
@@ -51,7 +52,7 @@ export default function FormContent({
{rooms}
-
+
diff --git a/components/Forms/BookingWidget/schema.ts b/components/Forms/BookingWidget/schema.ts
index f474a72e1..bc0be8d9c 100644
--- a/components/Forms/BookingWidget/schema.ts
+++ b/components/Forms/BookingWidget/schema.ts
@@ -26,7 +26,6 @@ export const bookingWidgetSchema = z.object({
),
redemption: z.boolean().default(false),
rooms: z.array(
- // This will be updated when working in guests component
z.object({
adults: z.number().default(1),
children: z.array(
diff --git a/components/GuestsRoomsPicker/GuestsRoomPicker/AdultSelector/adult-selector.module.css b/components/GuestsRoomsPicker/GuestsRoomPicker/AdultSelector/adult-selector.module.css
new file mode 100644
index 000000000..dd5f45c74
--- /dev/null
+++ b/components/GuestsRoomsPicker/GuestsRoomPicker/AdultSelector/adult-selector.module.css
@@ -0,0 +1,9 @@
+.container {
+ display: grid;
+ grid-template-columns: auto auto auto auto;
+ align-items: center;
+}
+
+.textCenter {
+ text-align: center;
+}
diff --git a/components/GuestsRoomsPicker/GuestsRoomPicker/AdultSelector/index.tsx b/components/GuestsRoomsPicker/GuestsRoomPicker/AdultSelector/index.tsx
new file mode 100644
index 000000000..d3b6a1297
--- /dev/null
+++ b/components/GuestsRoomsPicker/GuestsRoomPicker/AdultSelector/index.tsx
@@ -0,0 +1,44 @@
+import { useIntl } from "react-intl"
+
+import Button from "@/components/TempDesignSystem/Button"
+import Caption from "@/components/TempDesignSystem/Text/Caption"
+
+import styles from "./adult-selector.module.css"
+
+import { AdultSelectorProps } from "@/types/components/bookingWidget/guestsRoomsPicker"
+
+export default function AdultSelector({
+ adults = 1,
+ updateAdults = (count: number) => {},
+}: AdultSelectorProps) {
+ const intl = useIntl()
+ const adultsLabel = intl.formatMessage({ id: "Adults" })
+
+ function decreaseAdults() {
+ if (adults <= 1) {
+ return
+ }
+ adults = adults - 1
+ updateAdults(adults)
+ }
+ function increaseAdults() {
+ if (adults > 5) {
+ return
+ }
+ adults = adults + 1
+ updateAdults(adults)
+ }
+
+ return (
+
+ {adultsLabel}
+
+ {adults}
+
+
+ )
+}
diff --git a/components/GuestsRoomsPicker/GuestsRoomPicker/ChildSelector/ChildInfoSelector.tsx b/components/GuestsRoomsPicker/GuestsRoomPicker/ChildSelector/ChildInfoSelector.tsx
new file mode 100644
index 000000000..7dbc6d303
--- /dev/null
+++ b/components/GuestsRoomsPicker/GuestsRoomPicker/ChildSelector/ChildInfoSelector.tsx
@@ -0,0 +1,83 @@
+import { useIntl } from "react-intl"
+
+import Select from "@/components/TempDesignSystem/Select"
+
+import {
+ Child,
+ ChildBed,
+} from "@/types/components/bookingWidget/guestsRoomsPicker"
+
+type ChildSelectorProps = {
+ child: Child
+ index: number
+ availableBedTypes?: ChildBed[]
+ updateChild: (child: Child, index: number) => void
+}
+
+export default function ChildInfoSelector({
+ child = { age: -1, bed: -1 },
+ index = 0,
+ availableBedTypes = [
+ { label: "In adults bed", value: 0 },
+ { label: "In crib", value: 1 },
+ { label: "In extra bed", value: 2 },
+ ],
+ updateChild = (child: Child, index: number) => {},
+}: ChildSelectorProps) {
+ const intl = useIntl()
+ const ageLabel = intl.formatMessage({ id: "Age" })
+ const bedLabel = intl.formatMessage({ id: "Bed" })
+
+ const ageList = [
+ { label: "0", value: 0 },
+ { label: "1", value: 1 },
+ { label: "2", value: 2 },
+ { label: "3", value: 3 },
+ { label: "4", value: 4 },
+ { label: "5", value: 5 },
+ { label: "6", value: 6 },
+ { label: "7", value: 7 },
+ { label: "8", value: 8 },
+ { label: "9", value: 9 },
+ { label: "10", value: 10 },
+ { label: "11", value: 11 },
+ { label: "12", value: 12 },
+ ]
+
+ function handleOnSelect(selectedKey: any, childInfo: string) {
+ if (childInfo == "age") {
+ child.age = selectedKey
+ } else if (childInfo == "bed") {
+ child.bed = selectedKey
+ }
+ updateChild(child, index)
+ }
+
+ return (
+ <>
+