feat(SW-938) Added icons to room facility

This commit is contained in:
Pontus Dreij
2024-11-22 10:11:26 +01:00
parent 9693803626
commit 1f32f77846
14 changed files with 504 additions and 91 deletions

View File

@@ -0,0 +1,23 @@
import { iconVariants } from "./variants"
import type { IconProps } from "@/types/components/icon"
export default function BalconyIcon({ className, color, ...props }: IconProps) {
const classNames = iconVariants({ className, color })
return (
<svg
className={classNames}
fill="none"
height="20"
viewBox="0 0 20 20"
width="20"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
fill="#26201E"
d="M9 11.938a.903.903 0 0 1-.662-.276.903.903 0 0 1-.275-.662c0-.258.091-.48.274-.662A.903.903 0 0 1 9 10.063c.258 0 .48.091.662.274a.903.903 0 0 1 .275.663c0 .258-.091.48-.274.662a.903.903 0 0 1-.663.275Zm6 0a.903.903 0 0 1-.662-.276.903.903 0 0 1-.275-.662c0-.258.091-.48.274-.662a.903.903 0 0 1 .663-.275c.258 0 .48.091.662.274a.903.903 0 0 1 .275.663c0 .258-.091.48-.274.662a.903.903 0 0 1-.663.275Zm-10.063 10c-.515 0-.957-.184-1.324-.551a1.806 1.806 0 0 1-.55-1.325v-4.125c0-.35.087-.672.262-.968.175-.296.42-.527.737-.694V10c0-1.091.209-2.12.625-3.087a8.055 8.055 0 0 1 1.703-2.53 7.953 7.953 0 0 1 2.526-1.7A7.75 7.75 0 0 1 12 2.063c1.091 0 2.12.206 3.088.62.968.413 1.81.98 2.53 1.699a7.965 7.965 0 0 1 1.7 2.53c.413.967.62 1.997.62 3.088v4.275c.316.167.562.398.737.694.175.296.262.619.262.969v4.124c0 .516-.183.957-.55 1.325-.367.367-.809.55-1.325.55H4.938Zm0-6v4.124h2.125v-4.125H4.938Zm4 4.124h2.126v-4.125H8.937v4.126Zm-3-6h5.125V4c-1.474.242-2.697.925-3.668 2.05C6.423 7.175 5.937 8.492 5.937 10v4.063Zm7 0h5.126V10c0-1.508-.486-2.825-1.457-3.95-.97-1.125-2.194-1.808-3.669-2.05v10.063Zm0 6h2.126v-4.125h-2.126v4.126Zm4 0h2.125v-4.125h-2.125v4.126Z"
/>
</svg>
)
}

View File

@@ -0,0 +1,27 @@
import { iconVariants } from "./variants"
import type { IconProps } from "@/types/components/icon"
export default function BedHotelIcon({
className,
color,
...props
}: IconProps) {
const classNames = iconVariants({ className, color })
return (
<svg
className={classNames}
xmlns="http://www.w3.org/2000/svg"
width="25"
height="25"
viewBox="0 0 25 25"
fill="none"
{...props}
>
<path
fill="#26201E"
d="M2.188 18.8a.903.903 0 0 1-.663-.275.903.903 0 0 1-.275-.662V5.136c0-.258.092-.479.275-.662a.903.903 0 0 1 .663-.275c.258 0 .479.092.662.275a.903.903 0 0 1 .275.662v8.813h7.95v-5.9c0-.516.184-.957.55-1.324.368-.367.81-.551 1.325-.551h5.95c1.067 0 1.975.375 2.725 1.125s1.125 1.658 1.125 2.725v7.838c0 .258-.092.479-.275.662a.903.903 0 0 1-.663.275.903.903 0 0 1-.662-.275.903.903 0 0 1-.275-.662v-2.038H3.125v2.038c0 .258-.092.479-.275.662a.903.903 0 0 1-.663.275Zm4.886-5.9a2.77 2.77 0 0 1-2.037-.839 2.776 2.776 0 0 1-.837-2.037c0-.8.28-1.478.839-2.037a2.776 2.776 0 0 1 2.037-.837c.8 0 1.478.28 2.037.839.558.56.837 1.238.837 2.037a2.77 2.77 0 0 1-.839 2.037 2.777 2.777 0 0 1-2.037.837Zm5.876 1.05h7.925v-3.927c0-.54-.194-1.004-.582-1.392a1.909 1.909 0 0 0-1.4-.581H12.95v5.9Zm-5.875-2.925c.283 0 .52-.096.712-.287a.968.968 0 0 0 .288-.713.968.968 0 0 0-.287-.713.968.968 0 0 0-.713-.287.968.968 0 0 0-.713.287.968.968 0 0 0-.287.713c0 .283.096.52.287.713.192.191.43.287.713.287Z"
/>
</svg>
)
}

View File

@@ -0,0 +1,27 @@
import { iconVariants } from "./variants"
import type { IconProps } from "@/types/components/icon"
export default function BedroomParentIcon({
className,
color,
...props
}: IconProps) {
const classNames = iconVariants({ className, color })
return (
<svg
width="20"
height="20"
viewBox="0 0 20 20"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={classNames}
{...props}
>
<path
fill="#26201E"
d="M6.5 15.4h11v.775a.676.676 0 0 0 .698.7.684.684 0 0 0 .702-.7V13c0-.344-.07-.668-.212-.97a2.32 2.32 0 0 0-.588-.78V9.125a1.86 1.86 0 0 0-.556-1.369 1.855 1.855 0 0 0-1.365-.556h-3.184a1.77 1.77 0 0 0-.995.3 1.77 1.77 0 0 0-1-.3H7.82c-.538 0-.993.185-1.364.556A1.86 1.86 0 0 0 5.9 9.125v2.125A2.32 2.32 0 0 0 5.1 13v3.175a.677.677 0 0 0 .698.7.684.684 0 0 0 .702-.7V15.4Zm0-1.425v-1c0-.283.092-.517.275-.7A.951.951 0 0 1 7.477 12h9.046c.285 0 .519.092.702.275a.948.948 0 0 1 .275.7v1h-11Zm.825-3.4V8.6H11.3v1.975H7.325Zm5.375 0V8.6h3.975v1.975H12.7ZM4.125 21.75c-.516 0-.957-.184-1.324-.55a1.806 1.806 0 0 1-.551-1.325V4.125c0-.516.184-.957.55-1.324.368-.367.81-.551 1.325-.551h15.75c.516 0 .957.184 1.324.55.367.368.551.81.551 1.325v15.75c0 .516-.184.957-.55 1.324-.368.367-.81.551-1.325.551H4.125Zm0-1.875h15.75V4.125H4.125v15.75Z"
/>
</svg>
)
}

View File

@@ -0,0 +1,23 @@
import { iconVariants } from "./variants"
import type { IconProps } from "@/types/components/icon"
export default function CableIcon({ className, color, ...props }: IconProps) {
const classNames = iconVariants({ className, color })
return (
<svg
className={classNames}
fill="none"
height="20"
viewBox="0 0 20 20"
width="20"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
fill="#26201E"
d="M5.087 20.8a.932.932 0 0 1-.676-.266.883.883 0 0 1-.274-.659v-1H4.1a3.918 3.918 0 0 1-.625-.35.673.673 0 0 1-.313-.587v-2.963c0-.262.09-.482.266-.659a.895.895 0 0 1 .66-.266h1.05v-7c0-1.072.382-1.99 1.146-2.754.764-.764 1.683-1.146 2.756-1.146 1.073 0 1.991.382 2.754 1.146.762.763 1.143 1.682 1.143 2.754v9.85c0 .557.199 1.034.596 1.43.397.397.874.595 1.431.595s1.034-.198 1.43-.595c.396-.396.594-.873.594-1.43V9.925h-1.05a.895.895 0 0 1-.66-.266.895.895 0 0 1-.266-.659V6.038c0-.25.105-.446.313-.588.208-.142.417-.258.625-.35h.038v-1c0-.262.088-.482.265-.659a.895.895 0 0 1 .66-.266h2c.269 0 .494.089.676.266a.883.883 0 0 1 .274.659v1h.037c.208.092.417.208.625.35a.673.673 0 0 1 .313.588V9a.895.895 0 0 1-.267.66.895.895 0 0 1-.659.265h-1.05V16.9c0 1.073-.382 1.99-1.146 2.754-.764.764-1.683 1.146-2.756 1.146-1.073 0-1.991-.382-2.754-1.146-.762-.763-1.143-1.681-1.143-2.754V7.05a1.95 1.95 0 0 0-.596-1.43 1.952 1.952 0 0 0-1.431-.595c-.557 0-1.034.198-1.43.595a1.952 1.952 0 0 0-.594 1.43v7h1.05c.263 0 .482.089.66.266a.895.895 0 0 1 .265.659v2.963c0 .25-.104.445-.312.587a3.919 3.919 0 0 1-.625.35h-.038v1a.883.883 0 0 1-.273.66.932.932 0 0 1-.677.265H5.087Z"
/>
</svg>
)
}

View File

@@ -0,0 +1,27 @@
import { iconVariants } from "./variants"
import type { IconProps } from "@/types/components/icon"
export default function CoffeeMakerIcon({
className,
color,
...props
}: IconProps) {
const classNames = iconVariants({ className, color })
return (
<svg
className={classNames}
fill="none"
height="20"
viewBox="0 0 20 20"
width="20"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
fill="#26201E"
d="M6.125 21.75c-.516 0-.957-.184-1.324-.55a1.806 1.806 0 0 1-.551-1.325V4.125c0-.516.184-.957.55-1.324.368-.367.81-.551 1.325-.551h12.688c.258 0 .479.092.662.275a.903.903 0 0 1 .275.663c0 .258-.092.479-.275.662a.903.903 0 0 1-.663.275h-1.05v1.876a.937.937 0 0 1-.287.686.938.938 0 0 1-.688.288h-7.7a.938.938 0 0 1-.687-.287A.937.937 0 0 1 8.113 6V4.125H6.125v15.75h3.988a4.853 4.853 0 0 1-1.463-1.656c-.358-.663-.537-1.402-.537-2.219v-2.975c0-.516.183-.957.55-1.324.367-.367.809-.551 1.325-.551h5.9c.515 0 .957.184 1.324.55.367.368.55.81.55 1.325V16c0 .817-.179 1.556-.537 2.219a4.852 4.852 0 0 1-1.463 1.656h3.05c.259 0 .48.092.663.275a.903.903 0 0 1 .275.663c0 .258-.092.479-.275.662a.903.903 0 0 1-.663.275H6.126Zm6.81-2.8a2.85 2.85 0 0 0 2.09-.86c.575-.574.862-1.27.862-2.09v-2.975h-5.9V16c0 .82.287 1.516.86 2.09a2.84 2.84 0 0 0 2.088.86Zm.001-8.9a.947.947 0 0 0 .695-.28.94.94 0 0 0 .281-.694.947.947 0 0 0-.28-.695.94.94 0 0 0-.693-.281.946.946 0 0 0-.695.28.94.94 0 0 0-.281.694c0 .276.093.507.28.695a.94.94 0 0 0 .693.281Z"
/>
</svg>
)
}

View File

@@ -0,0 +1,23 @@
import { iconVariants } from "./variants"
import type { IconProps } from "@/types/components/icon"
export default function DiningIcon({ className, color, ...props }: IconProps) {
const classNames = iconVariants({ className, color })
return (
<svg
className={classNames}
fill="none"
height="20"
viewBox="0 0 20 20"
width="20"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
fill="#26201E"
d="M6.125 21.75c-.516 0-.957-.184-1.324-.55a1.806 1.806 0 0 1-.551-1.325V4.125c0-.516.184-.957.55-1.324.368-.367.81-.551 1.325-.551h12.688c.258 0 .479.092.662.275a.903.903 0 0 1 .275.663c0 .258-.092.479-.275.662a.903.903 0 0 1-.663.275h-1.05v1.876a.937.937 0 0 1-.287.686.938.938 0 0 1-.688.288h-7.7a.938.938 0 0 1-.687-.287A.937.937 0 0 1 8.113 6V4.125H6.125v15.75h3.988a4.853 4.853 0 0 1-1.463-1.656c-.358-.663-.537-1.402-.537-2.219v-2.975c0-.516.183-.957.55-1.324.367-.367.809-.551 1.325-.551h5.9c.515 0 .957.184 1.324.55.367.368.55.81.55 1.325V16c0 .817-.179 1.556-.537 2.219a4.852 4.852 0 0 1-1.463 1.656h3.05c.259 0 .48.092.663.275a.903.903 0 0 1 .275.663c0 .258-.092.479-.275.662a.903.903 0 0 1-.663.275H6.126Zm6.81-2.8a2.85 2.85 0 0 0 2.09-.86c.575-.574.862-1.27.862-2.09v-2.975h-5.9V16c0 .82.287 1.516.86 2.09a2.84 2.84 0 0 0 2.088.86Zm.001-8.9a.947.947 0 0 0 .695-.28.94.94 0 0 0 .281-.694.947.947 0 0 0-.28-.695.94.94 0 0 0-.693-.281.946.946 0 0 0-.695.28.94.94 0 0 0-.281.694c0 .276.093.507.28.695a.94.94 0 0 0 .693.281Z"
/>
</svg>
)
}

View File

@@ -0,0 +1,23 @@
import { iconVariants } from "./variants"
import type { IconProps } from "@/types/components/icon"
export default function FamilyIcon({ className, color, ...props }: IconProps) {
const classNames = iconVariants({ className, color })
return (
<svg
className={classNames}
fill="none"
height="20"
viewBox="0 0 20 20"
width="20"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
fill="#1C1B1F"
d="M17.58 6.439c-.51 0-.947-.181-1.31-.545a1.785 1.785 0 0 1-.544-1.309c0-.51.181-.946.544-1.309.363-.363.8-.544 1.31-.544.509 0 .945.181 1.308.544.363.363.545.8.545 1.31s-.182.945-.545 1.308c-.363.364-.799.545-1.309.545Zm-.928 14.83v-7.415c0-.618-.158-1.174-.475-1.669a3.422 3.422 0 0 0-1.216-1.158l.811-2.387c.123-.386.351-.695.684-.927a1.917 1.917 0 0 1 1.123-.347c.417 0 .792.116 1.124.347.332.232.56.541.684.927l2.363 7.067h-2.317v5.561h-2.78Zm-4.17-9.732a1.34 1.34 0 0 1-.985-.406 1.34 1.34 0 0 1-.405-.985c0-.386.135-.714.405-.984s.598-.406.985-.406c.386 0 .714.135.985.406.27.27.405.598.405.984s-.135.715-.405.985-.6.406-.985.406ZM5.994 6.439c-.51 0-.946-.181-1.31-.545a1.785 1.785 0 0 1-.544-1.309c0-.51.182-.946.545-1.309.363-.363.8-.544 1.309-.544.51 0 .946.181 1.309.544.363.363.545.8.545 1.31s-.182.945-.545 1.308c-.363.364-.8.545-1.31.545ZM4.14 21.269V14.78H2.75V9.218c0-.51.182-.946.545-1.309.363-.363.799-.544 1.309-.544h2.78c.51 0 .946.181 1.31.544.362.363.544.8.544 1.31v5.56h-1.39v6.488H4.14Zm6.952 0V17.56h-.927v-3.707c0-.386.135-.715.405-.985s.599-.406.985-.406h1.854c.386 0 .714.136.984.406s.406.598.406.985v3.707h-.927v3.707h-2.78Z"
/>
</svg>
)
}

View File

@@ -0,0 +1,27 @@
import { iconVariants } from "./variants"
import type { IconProps } from "@/types/components/icon"
export default function HealthBeautyIcon({
className,
color,
...props
}: IconProps) {
const classNames = iconVariants({ className, color })
return (
<svg
className={classNames}
fill="none"
height="20"
viewBox="0 0 20 20"
width="20"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
fill="#26201E"
d="M6.125 21.75c-.516 0-.957-.184-1.324-.55a1.806 1.806 0 0 1-.551-1.325V4.125c0-.516.184-.957.55-1.324.368-.367.81-.551 1.325-.551h12.688c.258 0 .479.092.662.275a.903.903 0 0 1 .275.663c0 .258-.092.479-.275.662a.903.903 0 0 1-.663.275h-1.05v1.876a.937.937 0 0 1-.287.686.938.938 0 0 1-.688.288h-7.7a.938.938 0 0 1-.687-.287A.937.937 0 0 1 8.113 6V4.125H6.125v15.75h3.988a4.853 4.853 0 0 1-1.463-1.656c-.358-.663-.537-1.402-.537-2.219v-2.975c0-.516.183-.957.55-1.324.367-.367.809-.551 1.325-.551h5.9c.515 0 .957.184 1.324.55.367.368.55.81.55 1.325V16c0 .817-.179 1.556-.537 2.219a4.852 4.852 0 0 1-1.463 1.656h3.05c.259 0 .48.092.663.275a.903.903 0 0 1 .275.663c0 .258-.092.479-.275.662a.903.903 0 0 1-.663.275H6.126Zm6.81-2.8a2.85 2.85 0 0 0 2.09-.86c.575-.574.862-1.27.862-2.09v-2.975h-5.9V16c0 .82.287 1.516.86 2.09a2.84 2.84 0 0 0 2.088.86Zm.001-8.9a.947.947 0 0 0 .695-.28.94.94 0 0 0 .281-.694.947.947 0 0 0-.28-.695.94.94 0 0 0-.693-.281.946.946 0 0 0-.695.28.94.94 0 0 0-.281.694c0 .276.093.507.28.695a.94.94 0 0 0 .693.281Z"
/>
</svg>
)
}

View File

@@ -0,0 +1,23 @@
import { iconVariants } from "./variants"
import type { IconProps } from "@/types/components/icon"
export default function LaptopIcon({ className, color, ...props }: IconProps) {
const classNames = iconVariants({ className, color })
return (
<svg
className={classNames}
fill="none"
height="20"
viewBox="0 0 20 20"
width="20"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
fill="#26201E"
d="M2.188 20.7a.903.903 0 0 1-.663-.275.903.903 0 0 1-.275-.663c0-.258.092-.479.275-.662a.903.903 0 0 1 .663-.275h19.625c.258 0 .479.092.662.275a.903.903 0 0 1 .275.662c0 .259-.092.48-.275.663a.903.903 0 0 1-.663.275H2.188Zm1.937-2.85c-.516 0-.957-.184-1.324-.55a1.806 1.806 0 0 1-.551-1.325V5.15c0-.516.184-.957.55-1.324.368-.367.81-.551 1.325-.551h15.75c.516 0 .957.184 1.324.55.367.368.551.81.551 1.325v10.825c0 .516-.184.957-.55 1.324-.368.367-.81.551-1.325.551H4.125Zm0-1.875h15.75V5.15H4.125v10.825Z"
/>
</svg>
)
}

View File

@@ -0,0 +1,23 @@
import { iconVariants } from "./variants"
import type { IconProps } from "@/types/components/icon"
export default function LuggageIcon({ className, color, ...props }: IconProps) {
const classNames = iconVariants({ className, color })
return (
<svg
className={classNames}
fill="none"
height="20"
viewBox="0 0 20 20"
width="20"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
fill="#26201E"
d="M6.938 20.938c-.516 0-.958-.184-1.325-.551a1.806 1.806 0 0 1-.55-1.325V8c0-.533.19-.989.569-1.368.38-.38.835-.57 1.368-.57h2.063V3.237c0-.35.137-.633.412-.85a1.51 1.51 0 0 1 .963-.325h3.124c.367 0 .688.109.963.326.275.216.412.5.412.85v2.825h2.126c.515 0 .957.183 1.324.55.367.367.55.809.55 1.324v11.125c0 .516-.183.957-.55 1.325-.367.367-.809.55-1.325.55a.846.846 0 0 1-.252.624.85.85 0 0 1-.625.252.843.843 0 0 1-.622-.252.85.85 0 0 1-.25-.623H8.686c0 .25-.084.458-.252.625a.852.852 0 0 1-.625.25.843.843 0 0 1-.622-.252.85.85 0 0 1-.25-.623Zm0-1.875h10.125V7.938H6.938v11.125Zm1.813-1.125a.665.665 0 0 0 .687-.688v-7.5a.667.667 0 0 0-.69-.688.665.665 0 0 0-.685.688v7.5a.667.667 0 0 0 .688.688Zm3.25 0a.665.665 0 0 0 .687-.688v-7.5a.667.667 0 0 0-.69-.688.665.665 0 0 0-.685.688v7.5a.667.667 0 0 0 .688.688Zm3.25 0a.665.665 0 0 0 .687-.688v-7.5a.667.667 0 0 0-.69-.688.665.665 0 0 0-.685.688v7.5a.667.667 0 0 0 .688.688ZM10.438 6.063h3.124V3.438h-3.124v2.624Z"
/>
</svg>
)
}

View File

@@ -0,0 +1,27 @@
import { iconVariants } from "./variants"
import type { IconProps } from "@/types/components/icon"
export default function MicrowaveIcon({
className,
color,
...props
}: IconProps) {
const classNames = iconVariants({ className, color })
return (
<svg
className={classNames}
xmlns="http://www.w3.org/2000/svg"
width="25"
height="25"
viewBox="0 0 25 25"
fill="none"
{...props}
>
<path
fill="#26201E"
d="M8.247 6.938c-.323 0-.63-.06-.922-.182a4.548 4.548 0 0 1-.838-.456 29.36 29.36 0 0 0-.355-.246.664.664 0 0 0-.382-.117.863.863 0 0 0-.488.142c-.142.094-.275.21-.4.346-.09.114-.196.203-.317.267a.861.861 0 0 1-.409.095.901.901 0 0 1-.661-.274.903.903 0 0 1-.275-.663.94.94 0 0 1 .262-.65c.3-.333.644-.606 1.032-.819a2.577 2.577 0 0 1 1.26-.319c.322 0 .627.065.915.194.287.13.569.286.844.469.122.087.24.164.355.234.114.069.242.104.382.104.267 0 .583-.192.95-.575a.917.917 0 0 1 .663-.275c.258 0 .479.091.662.274a.904.904 0 0 1 .275.663.939.939 0 0 1-.263.65c-.3.333-.643.606-1.03.819a2.577 2.577 0 0 1-1.26.319Zm0 5c-.323 0-.63-.06-.922-.182a4.554 4.554 0 0 1-.838-.456 30.073 30.073 0 0 0-.355-.246.663.663 0 0 0-.382-.117.863.863 0 0 0-.488.142c-.142.094-.275.21-.4.346-.09.114-.196.203-.317.267a.862.862 0 0 1-.409.095.901.901 0 0 1-.661-.275.903.903 0 0 1-.275-.662.94.94 0 0 1 .262-.65c.3-.333.644-.606 1.032-.819a2.577 2.577 0 0 1 1.26-.319c.322 0 .627.065.915.194.287.13.569.286.844.469.122.087.24.164.355.234.114.069.242.104.382.104a.803.803 0 0 0 .519-.188 5.57 5.57 0 0 0 .431-.387 1.02 1.02 0 0 1 .305-.213.864.864 0 0 1 .357-.075c.259 0 .48.094.663.281.183.188.275.41.275.67a.939.939 0 0 1-.263.649c-.3.333-.643.606-1.03.819a2.577 2.577 0 0 1-1.26.319Zm-6.31 4c-.515 0-.957-.184-1.324-.551a1.806 1.806 0 0 1-.55-1.325V1.938c0-.516.183-.958.55-1.325.367-.367.809-.55 1.325-.55h16.125c.515 0 .957.183 1.324.55.367.367.55.809.55 1.325v12.124c0 .516-.183.958-.55 1.325-.367.367-.809.55-1.325.55H1.938Zm0-1.876h10.126V1.938H1.937v12.124Zm12 0h4.126V1.938h-4.125v12.124Zm1.6-9.124h.938a.438.438 0 0 0 .331-.138.47.47 0 0 0 .131-.337v-.938a.438.438 0 0 0-.137-.331.47.47 0 0 0-.338-.131h-.937a.438.438 0 0 0-.331.137.47.47 0 0 0-.132.337v.938c0 .133.046.244.138.331a.47.47 0 0 0 .338.131Zm.463 4c.258 0 .48-.092.663-.276A.903.903 0 0 0 16.937 8a.903.903 0 0 0-.274-.662.903.903 0 0 0-.663-.276.903.903 0 0 0-.662.276.903.903 0 0 0-.275.662c0 .258.091.48.274.662a.903.903 0 0 0 .663.275Zm0 4c.258 0 .48-.092.663-.276a.903.903 0 0 0 .274-.662.903.903 0 0 0-.274-.662.903.903 0 0 0-.663-.275.903.903 0 0 0-.662.274.903.903 0 0 0-.275.663c0 .258.091.48.274.662a.903.903 0 0 0 .663.275Z"
/>
</svg>
)
}

View File

@@ -0,0 +1,23 @@
import { iconVariants } from "./variants"
import type { IconProps } from "@/types/components/icon"
export default function SpeakerIcon({ className, color, ...props }: IconProps) {
const classNames = iconVariants({ className, color })
return (
<svg
className={classNames}
fill="none"
height="20"
viewBox="0 0 20 20"
width="20"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
fill="#26201E"
d="M16.925 21.75h-9.85c-.516 0-.957-.184-1.324-.55a1.806 1.806 0 0 1-.551-1.325V4.125c0-.516.184-.957.55-1.324.368-.367.81-.551 1.325-.551h9.85c.516 0 .957.184 1.324.55.367.368.551.81.551 1.325v15.75c0 .516-.184.957-.55 1.324-.368.367-.81.551-1.325.551Zm0-1.875V4.125h-9.85v15.75h9.85ZM12 9c.53 0 .982-.188 1.36-.565.377-.377.565-.83.565-1.36 0-.53-.189-.983-.566-1.36A1.854 1.854 0 0 0 12 5.15c-.53 0-.983.188-1.36.565-.377.377-.565.83-.565 1.36 0 .53.188.983.565 1.36.377.377.83.565 1.36.565Zm.003 9.85c1.073 0 1.99-.382 2.753-1.146.763-.765 1.144-1.683 1.144-2.757 0-1.073-.382-1.99-1.146-2.753-.765-.763-1.684-1.144-2.757-1.144-1.073 0-1.99.382-2.753 1.146-.763.765-1.144 1.683-1.144 2.757 0 1.073.382 1.99 1.146 2.753.765.763 1.683 1.144 2.757 1.144Zm-.005-1.875a1.946 1.946 0 0 1-1.43-.595 1.954 1.954 0 0 1-.593-1.431c0-.558.198-1.034.595-1.43a1.954 1.954 0 0 1 1.431-.594c.558 0 1.034.198 1.43.595.396.397.594.874.594 1.432 0 .557-.199 1.033-.595 1.43a1.954 1.954 0 0 1-1.432.593Z"
/>
</svg>
)
}

View File

@@ -7,14 +7,18 @@ export { default as AirplaneIcon } from "./Airplane"
export { default as AllergyIcon } from "./Allergy"
export { default as ArrowRightIcon } from "./ArrowRight"
export { default as ArrowUpIcon } from "./ArrowUp"
export { default as BalconyIcon } from "./Balcony"
export { default as BarIcon } from "./Bar"
export { default as BathtubIcon } from "./Bathtub"
export { default as BedDoubleIcon } from "./BedDouble"
export { default as BedHotelIcon } from "./BedHotel"
export { default as BedroomParentIcon } from "./BedroomParent"
export { default as BedSingleIcon } from "./BedSingle"
export { default as BikeIcon } from "./Bike"
export { default as BikingIcon } from "./Biking"
export { default as BreakfastIcon } from "./Breakfast"
export { default as BusinessIcon } from "./Business"
export { default as CableIcon } from "./Cable"
export { default as CalendarIcon } from "./Calendar"
export { default as CameraIcon } from "./Camera"
export { default as CellphoneIcon } from "./Cellphone"
@@ -34,6 +38,7 @@ export { default as CloseIcon } from "./Close"
export { default as CloseLargeIcon } from "./CloseLarge"
export { default as CoffeeIcon } from "./Coffee"
export { default as CoffeeAltIcon } from "./CoffeeAlt"
export { default as CoffeeMakerIcon } from "./CoffeeMaker"
export { default as ConciergeIcon } from "./Concierge"
export { default as ContractIcon } from "./Contract"
export { default as ConvenienceStore24hIcon } from "./ConvenienceStore24h"
@@ -44,6 +49,7 @@ export { default as CrossCircle } from "./CrossCircle"
export { default as CulturalIcon } from "./Cultural"
export { default as DeleteIcon } from "./Delete"
export { default as DeskIcon } from "./Desk"
export { default as DiningIcon } from "./Dining"
export { default as DiscountIcon } from "./Discount"
export { default as DoorClosedIcon } from "./DoorClosed"
export { default as DoorOpenIcon } from "./DoorOpen"
@@ -57,6 +63,7 @@ export { default as ErrorCircleIcon } from "./ErrorCircle"
export { default as EyeHideIcon } from "./EyeHide"
export { default as EyeShowIcon } from "./EyeShow"
export { default as FacebookIcon } from "./Facebook"
export { default as FamilyIcon } from "./Family"
export { default as FanIcon } from "./Fan"
export { default as FilterIcon } from "./Filter"
export { default as FitnessIcon } from "./Fitness"
@@ -71,6 +78,7 @@ export { default as HairdryerIcon } from "./Hairdryer"
export { default as HandSoapIcon } from "./HandSoap"
export { default as HangerIcon } from "./Hanger"
export { default as HangerAltIcon } from "./HangerAlt"
export { default as HealthBeautyIcon } from "./HealthBeauty"
export { default as HeartIcon } from "./Heart"
export { default as HeatIcon } from "./Heat"
export { default as HouseIcon } from "./House"
@@ -83,6 +91,7 @@ export { default as KettleIcon } from "./Kettle"
export { default as KingBedIcon } from "./KingBed"
export { default as KingBedSmallIcon } from "./KingBedSmall"
export { default as LampIcon } from "./Lamp"
export { default as LaptopIcon } from "./Laptop"
export { default as LaundryMachineIcon } from "./LaundryMachine"
export { default as LocalBarIcon } from "./LocalBar"
export { default as LocationIcon } from "./Location"
@@ -94,7 +103,9 @@ 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 LuggageIcon } from "./Luggage"
export { default as MapIcon } from "./Map"
export { default as MicrowaveIcon } from "./Microwave"
export { default as MinusIcon } from "./Minus"
export { default as MirrorIcon } from "./Mirror"
export { default as MuseumIcon } from "./Museum"
@@ -124,6 +135,7 @@ export { default as SkateboardingIcon } from "./Skateboarding"
export { default as SmokingIcon } from "./Smoking"
export { default as SnowflakeIcon } from "./Snowflake"
export { default as SpaIcon } from "./Spa"
export { default as SpeakerIcon } from "./Speaker"
export { default as StarFilledIcon } from "./StarFilled"
export { default as StoreIcon } from "./Store"
export { default as StreetIcon } from "./Street"

View File

@@ -2,21 +2,61 @@ import { FC } from "react"
import {
AcIcon,
AirplaneIcon,
BalconyIcon,
BathtubIcon,
BedDoubleIcon,
BedHotelIcon,
BedroomParentIcon,
BedSingleIcon,
BikeIcon,
BreakfastIcon,
BusinessIcon,
CableIcon,
ChairIcon,
CityIcon,
CoffeeAltIcon,
CoffeeIcon,
CoffeeMakerIcon,
ConciergeIcon,
CoolIcon,
DeskIcon,
DiningIcon,
ElectricBikeIcon,
FamilyIcon,
FitnessIcon,
FootstoolIcon,
HairdryerIcon,
HandSoapIcon,
HealthBeautyIcon,
HeartIcon,
IronIcon,
KayakingIcon,
KettleIcon,
LaptopIcon,
LaundryMachineIcon,
LocalBarIcon,
LuggageIcon,
MicrowaveIcon,
MirrorIcon,
NatureIcon,
NightlifeIcon,
NoSmokingIcon,
OutdoorFurnitureIcon,
ParkingIcon,
PetsIcon,
PhoneIcon,
RestaurantIcon,
RoomServiceIcon,
SafetyBoxIcon,
SaunaIcon,
ShowerIcon,
StarFilledIcon,
SpeakerIcon,
StoreIcon,
StreetIcon,
SwimIcon,
TshirtWashIcon,
TvCastingIcon,
WifiIcon,
WindowCurtainsAltIcon,
WindowNotAvailableIcon,
@@ -30,98 +70,163 @@ import { IconProps } from "@/types/components/icon"
export function getFacilityIcon(
name: string | undefined
): FC<IconProps> | null {
if (!name) return StarFilledIcon
if (!name) return HeartIcon
const iconMappings = [
{
icon: DeskIcon,
name: ["Desk and chair"],
},
{
icon: HairdryerIcon,
name: ["Hairdryer"],
},
{
icon: AcIcon,
name: ["Air Condition"],
},
{
icon: ChairIcon,
name: ["Armchair / armchairs"],
},
{
icon: BathtubIcon,
name: ["Bathroom with shower or bathtub"],
},
{
icon: WindowCurtainsAltIcon,
name: ["Blackout curtains"],
},
{
icon: MirrorIcon,
name: ["Cosmetic mirror"],
},
{
icon: WifiIcon,
name: ["FreeWiFi"],
},
{
icon: ChairIcon,
name: ["Connecting rooms"],
},
{
icon: YardIcon,
name: ["View - atrium view"],
},
{
icon: CityIcon,
name: ["View - city view"],
},
{
icon: NatureIcon,
name: ["View - park view"],
},
{
icon: StreetIcon,
name: ["View - street view"],
},
{
icon: WineBarIcon,
name: ["Minibar"],
},
{
icon: NoSmokingIcon,
name: ["Non smoking"],
},
{
icon: ShowerIcon,
name: ["Rain shower"],
},
{
icon: SafetyBoxIcon,
name: ["Safety box"],
},
{
icon: BedDoubleIcon,
name: ["Set of two pillows"],
},
{
icon: IronIcon,
name: ["Iron and ironing board"],
},
{
icon: HandSoapIcon,
name: ["Toiletries"],
},
{
icon: WoodFloorIcon,
name: ["Wooden floor"],
},
{
icon: WindowNotAvailableIcon,
name: ["Not window"],
},
{ icon: AcIcon, name: ["AirCondition"] },
{ icon: AirplaneIcon, name: ["Airport"] },
{ icon: BalconyIcon, name: ["Balcony"] },
{ icon: BalconyIcon, name: ["BalconyOrTerrace"] },
{ icon: BalconyIcon, name: ["FrenchBalcony"] },
{ icon: BathtubIcon, name: ["BathroomWithBathtub"] },
{ icon: BathtubIcon, name: ["BathroomWithShowerAndBathtub"] },
{ icon: BathtubIcon, name: ["BathroomWithShowerOrBathtub"] },
{ icon: BedDoubleIcon, name: ["AdjustableBeds"] },
{ icon: BedDoubleIcon, name: ["SetOfTwoPillows"] },
{ icon: BedHotelIcon, name: ["ArmchairBed"] },
{ icon: BedHotelIcon, name: ["PullOutBed"] },
{ icon: BedroomParentIcon, name: ["SeparateBedroom"] },
{ icon: BedSingleIcon, name: ["ExtraBed"] },
{ icon: BikeIcon, name: ["BikeForLoan"] },
{ icon: BreakfastIcon, name: ["Breakfast"] },
{ icon: BreakfastIcon, name: ["ServesBreakfastAlwaysIncluded"] },
{ icon: BusinessIcon, name: ["MeetingConferenceFacilities"] },
{ icon: BusinessIcon, name: ["Meetingrooms"] },
{ icon: CableIcon, name: ["InternetWithCableInTheRoom"] },
{ icon: ChairIcon, name: ["Armchair"] },
{ icon: ChairIcon, name: ["ConnectingRooms"] },
{ icon: CityIcon, name: ["ViewCityView"] },
{ icon: CoffeeAltIcon, name: ["NespressoMachine"] },
{ icon: CoffeeIcon, name: ["Café"] },
{ icon: CoffeeIcon, name: ["Coffee"] },
{ icon: CoffeeMakerIcon, name: ["CoffeeMachine"] },
{ icon: ConciergeIcon, name: ["LifestyleConcierge"] },
{ icon: CoolIcon, name: ["AirCooling"] },
{ icon: CoolIcon, name: ["Cooler"] },
{ icon: CoolIcon, name: ["CoolingCabinet"] },
{ icon: DeskIcon, name: ["DeskAndChair"] },
{ icon: DiningIcon, name: ["DiningArea"] },
{ icon: DiningIcon, name: ["TableForDining"] },
{ icon: ElectricBikeIcon, name: ["EBikesChargingStation"] },
{ icon: FamilyIcon, name: ["ExtraFamilyFriendly"] },
{ icon: FitnessIcon, name: ["Gym"] },
{ icon: FootstoolIcon, name: ["FootStool"] },
{ icon: HairdryerIcon, name: ["Hairdryer"] },
{ icon: HandSoapIcon, name: ["Toiletries"] },
{ icon: HealthBeautyIcon, name: ["BeautySalon"] },
{ icon: HeartIcon, name: ["Bathrobes"] },
{ icon: HeartIcon, name: ["Bathroom2SeparateBathrooms"] },
{ icon: HeartIcon, name: ["BodyCareProducts"] },
{ icon: HeartIcon, name: ["BodyLotion"] },
{ icon: HeartIcon, name: ["Bowling"] },
{ icon: HeartIcon, name: ["BunkBed"] },
{ icon: HeartIcon, name: ["BunkBed80x188Cm"] },
{ icon: HeartIcon, name: ["CarpetingWallToWallCarpet"] },
{ icon: HeartIcon, name: ["CashFree800pmTill0600am"] },
{ icon: HeartIcon, name: ["CashFreeHotel"] },
{ icon: HeartIcon, name: ["CoffeeVoucher"] },
{ icon: HeartIcon, name: ["ComplimentaryColdRefreshments"] },
{ icon: HeartIcon, name: ["Conditioner"] },
{ icon: HeartIcon, name: ["ConventionCentre"] },
{ icon: HeartIcon, name: ["DisabledParking"] },
{ icon: HeartIcon, name: ["DockingStationForiPodiPad"] },
{ icon: HeartIcon, name: ["DryingCabinet"] },
{ icon: HeartIcon, name: ["EasyAccess"] },
{ icon: HeartIcon, name: ["GarmentSteamer"] },
{ icon: HeartIcon, name: ["HighFloor"] },
{ icon: HeartIcon, name: ["IceMachine"] },
{ icon: HeartIcon, name: ["IceMachineReception"] },
{ icon: HeartIcon, name: ["Jaccuzzi"] },
{ icon: HeartIcon, name: ["Jacuzzi"] },
{ icon: HeartIcon, name: ["Kitchen"] },
{ icon: HeartIcon, name: ["Kitchenette"] },
{ icon: HeartIcon, name: ["LateCheckOutUntil1400Guaranteed"] },
{ icon: HeartIcon, name: ["LiveMusicExhibitions"] },
{ icon: HeartIcon, name: ["Massage"] },
{ icon: HeartIcon, name: ["MeetingArea"] },
{ icon: HeartIcon, name: ["MinibarIncludedInRoomRate"] },
{ icon: HeartIcon, name: ["OvernightSecurity"] },
{ icon: HeartIcon, name: ["ParkingAdditionalcost"] },
{ icon: HeartIcon, name: ["PrivateSauna"] },
{ icon: HeartIcon, name: ["Refrigerator"] },
{ icon: HeartIcon, name: ["SeatingArea"] },
{ icon: HeartIcon, name: ["Security24Hoours"] },
{ icon: HeartIcon, name: ["SeparateLivingRoom"] },
{ icon: HeartIcon, name: ["SeparateToilet"] },
{ icon: HeartIcon, name: ["ServiceSecurity24h"] },
{ icon: HeartIcon, name: ["Shampoo"] },
{ icon: HeartIcon, name: ["Slippers"] },
{ icon: HeartIcon, name: ["Sofabed"] },
{ icon: HeartIcon, name: ["Sofas"] },
{ icon: HeartIcon, name: ["SofaWithTable"] },
{ icon: HeartIcon, name: ["SpaciousRoom"] },
{ icon: HeartIcon, name: ["StillAndSparklingWater"] },
{ icon: HeartIcon, name: ["Table"] },
{ icon: HeartIcon, name: ["TassimoCoffeeMaker"] },
{ icon: HeartIcon, name: ["Terrace"] },
{ icon: HeartIcon, name: ["TrouserPress"] },
{ icon: HeartIcon, name: ["TV"] },
{ icon: HeartIcon, name: ["TVWithComplimentaryMovieChannels"] },
{ icon: HeartIcon, name: ["TVWithMovieChannels"] },
{ icon: HeartIcon, name: ["TVWithStreamingOption"] },
{ icon: HeartIcon, name: ["VentilationInRoom"] },
{ icon: HeartIcon, name: ["View"] },
{ icon: HeartIcon, name: ["ViewFjordView"] },
{ icon: HeartIcon, name: ["ViewLakeView"] },
{ icon: HeartIcon, name: ["ViewPanoramicView"] },
{ icon: HeartIcon, name: ["ViewSeaView"] },
{ icon: HeartIcon, name: ["WallBed"] },
{ icon: HeartIcon, name: ["WallMountedCycleRack"] },
{ icon: HeartIcon, name: ["Wardrobe"] },
{ icon: HeartIcon, name: ["WellnessAndSaunaEntranceFeeAdmission16Years"] },
{ icon: HeartIcon, name: ["WellnessPoolSaunaEntranceFeeAdmission16Years"] },
{ icon: HeartIcon, name: ["WindowNook"] },
{ icon: IronIcon, name: ["IronAndIroningBoard"] },
{ icon: IronIcon, name: ["IroningRoom"] },
{ icon: KayakingIcon, name: ["KayaksForLoan"] },
{ icon: KettleIcon, name: ["Kettle"] },
{ icon: KettleIcon, name: ["KettleWithCoffeeTea"] },
{ icon: LaptopIcon, name: ["LaptopSafe"] },
{ icon: LaptopIcon, name: ["LaptopTray"] },
{ icon: LaundryMachineIcon, name: ["LaundryService"] },
{ icon: LocalBarIcon, name: ["Bar"] },
{ icon: LocalBarIcon, name: ["RooftopBar"] },
{ icon: LocalBarIcon, name: ["Skybar"] },
{ icon: LuggageIcon, name: ["LuggageLockers"] },
{ icon: MicrowaveIcon, name: ["Microwave"] },
{ icon: MirrorIcon, name: ["CosmeticMirror"] },
{ icon: NatureIcon, name: ["ViewParkView"] },
{ icon: NightlifeIcon, name: ["DiscoNightClub"] },
{ icon: NoSmokingIcon, name: ["NonSmoking"] },
{ icon: OutdoorFurnitureIcon, name: ["OutdoorTerrace"] },
{ icon: ParkingIcon, name: ["Parking"] },
{ icon: ParkingIcon, name: ["ParkingFreeParking"] },
{ icon: PetsIcon, name: ["PetFriendlyRooms"] },
{ icon: PhoneIcon, name: ["DirectDialPhoneAndVoiceMail"] },
{ icon: RestaurantIcon, name: ["Restaurant"] },
{ icon: RoomServiceIcon, name: ["Roomservice"] },
{ icon: SafetyBoxIcon, name: ["SafetyBox"] },
{ icon: SaunaIcon, name: ["Sauna"] },
{ icon: ShowerIcon, name: ["BathroomWithShower"] },
{ icon: ShowerIcon, name: ["RainShower"] },
{ icon: ShowerIcon, name: ["SharedBathroomWithShower"] },
{ icon: ShowerIcon, name: ["ShowerGel"] },
{ icon: ShowerIcon, name: ["ShowerProductsScentByGrandCentral"] },
{ icon: SpeakerIcon, name: ["ModernVinylplayer"] },
{ icon: SpeakerIcon, name: ["MusicPlayer"] },
{ icon: StoreIcon, name: ["Hairdresser"] },
{ icon: StoreIcon, name: ["Shop"] },
{ icon: StreetIcon, name: ["ViewStreetView"] },
{ icon: SwimIcon, name: ["Pool"] },
{ icon: TshirtWashIcon, name: ["HandWash"] },
{ icon: TvCastingIcon, name: ["TVWithChromecast"] },
{ icon: WifiIcon, name: ["FreeWifi"] },
{ icon: WindowCurtainsAltIcon, name: ["BlackoutCurtains"] },
{ icon: WindowNotAvailableIcon, name: ["NoWindow"] },
{ icon: WineBarIcon, name: ["Minibar"] },
{ icon: WoodFloorIcon, name: ["WoodenFloor"] },
{ icon: YardIcon, name: ["ViewAtriumView"] },
]
const icon = iconMappings.find((icon) => icon.name.includes(name))
return icon ? icon.icon : StarFilledIcon
return icon ? icon.icon : HeartIcon
}