import { JSX } from "react";

type IconComponent = (props: { size?: number; color?: string }) => JSX.Element;

export const BathIcon: IconComponent = ({ size = 20 }) => {
    return (
        <svg width={size} height={size} viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
            <g clipPath="url(#clip0_5917_10960)">
                <path d="M13.5619 7.59221C13.23 7.21596 12.7517 7.00012 12.25 7.00012H1.16667V2.61462C1.16667 2.12404 1.38833 1.63871 1.80425 1.37796C2.4395 0.979539 3.21533 1.17554 3.61667 1.71104L3.76775 1.91229L3.486 3.52871C3.45217 3.72354 3.49242 3.92421 3.59917 4.09046C3.84708 4.47662 4.37092 4.57112 4.73783 4.29579L6.84133 2.71846C7.17208 2.47054 7.2555 2.00854 7.03208 1.66029L7.0245 1.64804C6.88625 1.43221 6.65117 1.29687 6.39508 1.28521L4.69992 1.20996L4.59842 1.07462C4.21458 0.563039 3.66917 0.175122 3.0415 0.0508723C1.42333 -0.269378 0 0.966122 0 2.52771C0 2.52771 0.00233333 5.85854 0.0035 7.14946C0.0035 7.48546 0.0250833 7.81737 0.0665 8.15104C0.125417 8.62296 0.20475 9.25937 0.20475 9.25937C0.351167 10.429 0.918167 11.4568 1.74183 12.1976L1.47525 13.2768C1.39767 13.5895 1.58842 13.9056 1.90108 13.9832C1.94833 13.9949 1.995 14.0001 2.04167 14.0001C2.30358 14.0001 2.54158 13.8222 2.6075 13.5568L2.76908 12.9029C3.416 13.2319 4.14575 13.4168 4.91342 13.4168H9.24C9.95342 13.4168 10.6342 13.2575 11.2467 12.9705L11.3919 13.5568C11.4573 13.8222 11.6958 14.0001 11.9578 14.0001C12.0044 14.0001 12.0511 13.9943 12.0983 13.9832C12.411 13.9056 12.6018 13.5895 12.5242 13.2768L12.285 12.3085C13.1775 11.5606 13.7964 10.4885 13.9498 9.25996L13.986 8.96771C14.0478 8.46954 13.8938 7.96904 13.5613 7.59279L13.5619 7.59221ZM12.8287 8.82246L12.7925 9.11471C12.5691 10.902 11.0419 12.2501 9.24058 12.2501H4.914C3.11267 12.2501 1.58608 10.902 1.36267 9.11471L1.24425 8.16679H12.25C12.4198 8.16679 12.5755 8.23679 12.6875 8.36396C12.7995 8.49171 12.8497 8.65387 12.8287 8.82246Z" fill="currentColor" />
            </g>
            <defs>
                <clipPath id="clip0_5917_10960">
                    <rect width="14" height="14" fill="currentColor" />
                </clipPath>
            </defs>
        </svg>
    );
}

export const BedAltIcon: IconComponent = ({ size = 20 }) => {
    return (
        <svg width={size} height={size} viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
            <path d="M19 2H5C2.243 2 0 4.243 0 7V21C0 21.553 0.448 22 1 22C1.552 22 2 21.553 2 21V19H22V21C22 21.553 22.447 22 23 22C23.553 22 24 21.553 24 21V7C24 4.243 21.757 2 19 2ZM5 4H19C20.654 4 22 5.346 22 7V13H20C20 10.794 18.206 9 16 9H15C13.806 9 12.734 9.526 12 10.357C11.266 9.525 10.194 9 9 9H8C5.794 9 4 10.794 4 13H2V7C2 5.346 3.346 4 5 4ZM13 13C13 11.897 13.897 11 15 11H16C17.103 11 18 11.897 18 13H13ZM6 13C6 11.897 6.897 11 8 11H9C10.103 11 11 11.897 11 13H6ZM2 17V15H22V17H2Z" fill="currentColor" />
        </svg>
    );
}

export const ZeroEightIcon: IconComponent = ({ size = 20 }) => {
    return (
        <svg width={size} height={size} viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
            <path d="M2.5 9.5H13.5M17.5 9.5H21.5" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
            <path d="M9.5 21.5V9.5" stroke="currentColor" strokeWidth="1.5" />
            <path d="M9.5 6.5V2.5M17 17C15 17 13 18.622 13 21.5H10.5C6.729 21.5 4.843 21.5 3.672 20.328C2.501 19.156 2.5 17.271 2.5 13.5V10.5C2.5 6.729 2.5 4.843 3.672 3.672C4.844 2.501 6.729 2.5 10.5 2.5H13.5C17.271 2.5 19.157 2.5 20.328 3.672C21.499 4.844 21.5 6.729 21.5 10.5V17.843C21.5 18.8129 21.1147 19.7431 20.4289 20.4289C19.7431 21.1147 18.8129 21.5 17.843 21.5" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
        </svg>
    );
}

export const StairsIcon: IconComponent = ({ size = 20 }) => {
    return (
        <svg width={size} height={size} viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
            <path d="M3.79167 11.6667V9.625C3.79167 9.45972 3.84767 9.32128 3.95967 9.20967C4.07167 9.09806 4.21011 9.04206 4.375 9.04167H6.41667V7C6.41667 6.83472 6.47267 6.69628 6.58467 6.58467C6.69667 6.47306 6.83511 6.41706 7 6.41667H9.04167V4.375C9.04167 4.20972 9.09767 4.07128 9.20967 3.95967C9.32167 3.84806 9.46011 3.79206 9.625 3.79167H11.6667V2.33334C11.6667 2.16806 11.7227 2.02961 11.8347 1.918C11.9467 1.80639 12.0851 1.75039 12.25 1.75C12.4149 1.74961 12.5535 1.80561 12.6659 1.918C12.7783 2.03039 12.8341 2.16884 12.8333 2.33334V4.375C12.8333 4.54028 12.7773 4.67892 12.6653 4.79092C12.5533 4.90292 12.4149 4.95872 12.25 4.95834H10.2083V7C10.2083 7.16528 10.1523 7.30392 10.0403 7.41592C9.92834 7.52792 9.78989 7.58372 9.625 7.58334H7.58334V9.625C7.58334 9.79028 7.52734 9.92892 7.41534 10.0409C7.30334 10.1529 7.16489 10.2087 7 10.2083H4.95834V12.25C4.95834 12.4153 4.90234 12.5539 4.79034 12.6659C4.67834 12.7779 4.53989 12.8337 4.375 12.8333H2.33334C2.16806 12.8333 2.02961 12.7773 1.918 12.6653C1.80639 12.5533 1.75039 12.4149 1.75 12.25C1.74961 12.0851 1.80561 11.9467 1.918 11.8347C2.03039 11.7227 2.16884 11.6667 2.33334 11.6667H3.79167Z" fill="currentColor" />
        </svg>
    );
}

export const CheckBoxIcon: IconComponent = ({ size = 20 }) => {
    return (
        <svg width={size} height={size} viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
            <path d="M4 2.5H16C16.8284 2.5 17.5 3.17157 17.5 4V16C17.5 16.8284 16.8284 17.5 16 17.5H4C3.17157 17.5 2.5 16.8284 2.5 16V4C2.5 3.17157 3.17157 2.5 4 2.5Z" fill="#F1F5F9" />
            <path d="M4 2.5H16C16.8284 2.5 17.5 3.17157 17.5 4V16C17.5 16.8284 16.8284 17.5 16 17.5H4C3.17157 17.5 2.5 16.8284 2.5 16V4C2.5 3.17157 3.17157 2.5 4 2.5Z" stroke="#05222D" />
            <path d="M15.3333 6L8 13.3333L4.66667 10" stroke="#1D293D" strokeWidth="1.3" strokeLinecap="round" strokeLinejoin="round" />
        </svg>
    );
}

export const DisabledCheckBoxIcon: IconComponent = ({ size = 20 }) => {
    return (
        <svg width={size} height={size} viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
            <path d="M4 2.5H16C16.8284 2.5 17.5 3.17157 17.5 4V16C17.5 16.8284 16.8284 17.5 16 17.5H4C3.17157 17.5 2.5 16.8284 2.5 16V4C2.5 3.17157 3.17157 2.5 4 2.5Z" fill="#F1F5F9" />
            <path d="M4 2.5H16C16.8284 2.5 17.5 3.17157 17.5 4V16C17.5 16.8284 16.8284 17.5 16 17.5H4C3.17157 17.5 2.5 16.8284 2.5 16V4C2.5 3.17157 3.17157 2.5 4 2.5Z" stroke="#E5E5E5" />
            <path d="M15.3333 6L8 13.3333L4.66667 10" stroke="#D4D4D4" strokeWidth="1.3" strokeLinecap="round" strokeLinejoin="round" />
        </svg>
    );
}

export const WhatsappIcon = ({ size = 32 }) => {
    return (
        <svg width={size} height={size} xmlns="http://www.w3.org/2000/svg" aria-label="WhatsApp" role="img" viewBox="-51.2 -51.2 614.40 614.40" fill="#000000"><g id="SVGRepo_bgCarrier" strokeWidth="0"></g><g id="SVGRepo_tracerCarrier" strokeLinecap="round" strokeLinejoin="round" stroke="#CCCCCC" strokeWidth="9.216"></g><g id="SVGRepo_iconCarrier"><circle cx="256" cy="256" r="310" fill="#25d366" />
            <path fill="#25d366" stroke="#ffffff" strokeWidth="26" d="M123 393l14-65a138 138 0 1150 47z"></path><path fill="#ffffff" d="M308 273c-3-2-6-3-9 1l-12 16c-3 2-5 3-9 1-15-8-36-17-54-47-1-4 1-6 3-8l9-14c2-2 1-4 0-6l-12-29c-3-8-6-7-9-7h-8c-2 0-6 1-10 5-22 22-13 53 3 73 3 4 23 40 66 59 32 14 39 12 48 10 11-1 22-10 27-19 1-3 6-16 2-18"></path></g></svg>
    );
}

export const ShareIcon = ({ size = 32 }) => {
    return (
        <svg width={size} height={size} viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
            <path d="M0 16C0 7.16344 7.16344 0 16 0C24.8366 0 32 7.16344 32 16C32 24.8366 24.8366 32 16 32C7.16344 32 0 24.8366 0 16Z" fill="#052531" fillOpacity="0.1" />
            <path d="M9.3335 16V22.6667C9.3335 23.1087 9.50909 23.5326 9.82165 23.8452C10.1342 24.1577 10.5581 24.3333 11.0002 24.3333H21.0002C21.4422 24.3333 21.8661 24.1577 22.1787 23.8452C22.4912 23.5326 22.6668 23.1087 22.6668 22.6667V16M19.3335 11L16.0002 7.66667M16.0002 7.66667L12.6668 11M16.0002 7.66667V18.5" stroke="#05222D" strokeWidth="1.4" strokeLinecap="round" strokeLinejoin="round" />
        </svg>
    );
}

export const VerifiedIcon: IconComponent = ({ size = 20 }) => {
    return (
        <svg width={size} height={size} viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
            <path d="M9.12484 10.5833L7.9165 9.39583C7.76373 9.24305 7.57289 9.16666 7.344 9.16666C7.11512 9.16666 6.91706 9.25 6.74984 9.41667C6.59706 9.56944 6.52067 9.76389 6.52067 10C6.52067 10.2361 6.59706 10.4306 6.74984 10.5833L8.5415 12.375C8.70817 12.5417 8.90262 12.625 9.12484 12.625C9.34706 12.625 9.5415 12.5417 9.70817 12.375L13.2498 8.83333C13.4165 8.66667 13.4962 8.47222 13.489 8.25C13.4818 8.02778 13.4021 7.83333 13.2498 7.66666C13.0832 7.5 12.8854 7.41333 12.6565 7.40666C12.4276 7.4 12.2296 7.47972 12.0623 7.64583L9.12484 10.5833ZM6.7915 18.125L5.58317 16.0833L3.2915 15.5833C3.08317 15.5417 2.9165 15.4342 2.7915 15.2608C2.6665 15.0875 2.61789 14.8964 2.64567 14.6875L2.87484 12.3333L1.31234 10.5417C1.17345 10.3889 1.104 10.2083 1.104 10C1.104 9.79167 1.17345 9.61111 1.31234 9.45833L2.87484 7.66666L2.64567 5.3125C2.61789 5.10416 2.6665 4.91305 2.7915 4.73916C2.9165 4.56528 3.08317 4.45778 3.2915 4.41667L5.58317 3.91666L6.7915 1.875C6.90262 1.69444 7.05539 1.57278 7.24984 1.51C7.44428 1.44722 7.63873 1.45778 7.83317 1.54167L9.99984 2.45833L12.1665 1.54167C12.3609 1.45833 12.5554 1.44778 12.7498 1.51C12.9443 1.57222 13.0971 1.69389 13.2082 1.875L14.4165 3.91666L16.7082 4.41667C16.9165 4.45833 17.0832 4.56611 17.2082 4.74C17.3332 4.91389 17.3818 5.10472 17.354 5.3125L17.1248 7.66666L18.6873 9.45833C18.8262 9.61111 18.8957 9.79167 18.8957 10C18.8957 10.2083 18.8262 10.3889 18.6873 10.5417L17.1248 12.3333L17.354 14.6875C17.3818 14.8958 17.3332 15.0869 17.2082 15.2608C17.0832 15.4347 16.9165 15.5422 16.7082 15.5833L14.4165 16.0833L13.2082 18.125C13.0971 18.3056 12.9443 18.4272 12.7498 18.49C12.5554 18.5528 12.3609 18.5422 12.1665 18.4583L9.99984 17.5417L7.83317 18.4583C7.63873 18.5417 7.44428 18.5522 7.24984 18.49C7.05539 18.4278 6.90262 18.3061 6.7915 18.125Z" fill="#2B7FFF" />
        </svg>

    )
}

export const FireFlameCurved = () => {
    return (
        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
            <g clipPath="url(#clip0_5919_11789)">
                <path d="M18.044 5.52896C16.946 4.10296 15.811 2.62896 15.008 1.03396C14.669 0.358959 13.995 -0.0480414 13.256 -0.00804137C12.543 0.0329586 11.942 0.487959 11.687 1.17996C11.345 2.11296 11 3.81796 11 5.52496C11 7.73396 11.688 9.22596 12.24 10.426C12.709 11.443 13.079 12.246 12.986 13.273C12.896 14.252 12.04 15.008 10.959 15C8.374 14.971 7.716 11.697 7.621 8.95696C7.589 8.05996 6.984 7.30196 6.116 7.07196C5.248 6.84296 4.346 7.20396 3.875 7.96796C2.667 9.92896 2.001 12.071 2.001 13.999C2.001 19.513 6.524 23.999 12.007 23.999C17.518 23.966 22.001 19.479 22.001 14.016C22.057 10.74 20.017 8.09096 18.044 5.52896ZM11.994 22C7.614 22 4 18.411 4 14C4 12.46 4.575 10.644 5.622 9.02696C5.801 14.131 7.688 16.963 10.937 17H10.984C13.045 17 14.795 15.452 14.978 13.456C15.12 11.896 14.58 10.724 14.057 9.58996C13.537 8.46196 13 7.29596 13 5.52596C13 4.37296 13.196 3.14196 13.423 2.31996C14.286 3.92596 15.39 5.35996 16.46 6.75096C18.303 9.14596 20.044 11.407 20.001 14.001C20.001 18.386 16.41 21.975 11.995 22.001L11.994 22Z" fill="currentColor" />
            </g>
            <defs>
                <clipPath id="clip0_5919_11789">
                    <rect width="24" height="24" fill="currentColor" />
                </clipPath>
            </defs>
        </svg>
    )
}

export const RiyalIcon: IconComponent = ({ size = 20 }) => {
    return (
        <svg width={size} height={size} viewBox="0 0 10 12" fill="none" xmlns="http://www.w3.org/2000/svg">
            <g clipPath="url(#clip0_6839_11596)">
                <path d="M6.22343 10.6307C6.04498 11.0555 5.92703 11.5166 5.88184 12L9.65814 11.1382C9.83659 10.7134 9.95446 10.2523 9.99974 9.7688L6.22343 10.6307Z" fill="currentColor" />
                <path d="M9.6584 8.55594C9.83685 8.1312 9.95481 7.67007 10 7.18659L7.05837 7.85832V6.56701L9.65832 5.97378C9.83676 5.54904 9.95472 5.08791 9.99991 4.60443L7.05828 5.27559V0.631619C6.60754 0.90335 6.20723 1.26505 5.88183 1.6917V5.54417L4.70537 5.81265V0C4.25463 0.271635 3.85432 0.633434 3.52892 1.06008V6.08104L0.896596 6.68162C0.718149 7.10636 0.600103 7.56749 0.554824 8.05097L3.52892 7.37236V8.99854L0.341594 9.72577C0.163147 10.1505 0.0451901 10.6116 0 11.0951L3.33624 10.3339C3.60782 10.2732 3.84125 10.1008 3.99301 9.86359L4.60485 8.88966V8.88947C4.66837 8.7887 4.70537 8.66721 4.70537 8.53636V7.10388L5.88183 6.83539V9.41803L9.65832 8.55575L9.6584 8.55594Z" fill="currentColor" />
            </g>
            <defs>
                <clipPath id="clip0_6839_11596">
                    <rect width="10" height="12" fill="currentColor" />
                </clipPath>
            </defs>
        </svg>

    )
}