"use client";

import React from "react";
import type { CSSProperties } from "react";

import { useIconSize } from "../contexts/IconSizeContext";

type Props = {
  size?: number;
  color?: string;
  style?: CSSProperties;
};

export default function FirewallCheck({
  color = "currentcolor",
  size,
  ...props
}: Props) {
  const iconSize = useIconSize();
  const height = size || iconSize.size;
  const width = size || iconSize.size;
  const style = { color, ...props.style };
  return (
    <svg
      {...props}
      data-testid="geist-icon"
      height={height}
      strokeLinejoin="round"
      style={style}
      viewBox="0 0 16 16"
      width={width}
    >
      <g clipPath="url(#clip0_4629_2028)">
        <mask id="path-1-inside-1_4629_2028" fill="white">
          <path
            fillRule="evenodd"
            clipRule="evenodd"
            d="M0 1.25C0 0.559645 0.559644 0 1.25 0H14.75C15.4404 0 16 0.559644 16 1.25V4.75V5.5H15.25H6V8.75V9.5H5.25H1.5V12H4.5V13.5H1.25C0.559644 13.5 0 12.9404 0 12.25V1.25ZM1.5 8H4.5V5.5H1.5V8ZM4.5 4H1.5V1.5H4.5V4ZM6 1.5V4H10V1.5H6ZM14.5 4H11.5V1.5H14.5V4ZM16 11.5C16 13.9853 13.9853 16 11.5 16C9.01472 16 7 13.9853 7 11.5C7 9.01472 9.01472 7 11.5 7C13.9853 7 16 9.01472 16 11.5ZM14.2861 10.3629L13.8442 10.8049L11.2407 13.4084C10.899 13.7501 10.345 13.7501 10.0033 13.4084L9.15574 12.5608L8.7138 12.1189L9.59768 11.235L10.0396 11.6769L10.622 12.2593L12.9603 9.92097L13.4023 9.47903L14.2861 10.3629Z"
          />
        </mask>
        <path
          fillRule="evenodd"
          clipRule="evenodd"
          d="M0 1.25C0 0.559645 0.559644 0 1.25 0H14.75C15.4404 0 16 0.559644 16 1.25V4.75V5.5H15.25H6V8.75V9.5H5.25H1.5V12H4.5V13.5H1.25C0.559644 13.5 0 12.9404 0 12.25V1.25ZM1.5 8H4.5V5.5H1.5V8ZM4.5 4H1.5V1.5H4.5V4ZM6 1.5V4H10V1.5H6ZM14.5 4H11.5V1.5H14.5V4ZM16 11.5C16 13.9853 13.9853 16 11.5 16C9.01472 16 7 13.9853 7 11.5C7 9.01472 9.01472 7 11.5 7C13.9853 7 16 9.01472 16 11.5ZM14.2861 10.3629L13.8442 10.8049L11.2407 13.4084C10.899 13.7501 10.345 13.7501 10.0033 13.4084L9.15574 12.5608L8.7138 12.1189L9.59768 11.235L10.0396 11.6769L10.622 12.2593L12.9603 9.92097L13.4023 9.47903L14.2861 10.3629Z"
          fill="currentColor"
        />
        <path
          d="M16 5.5V7L17.5 5.5H16ZM6 5.5V4L4.5 5.5H6ZM6 9.5V11L7.5 9.5H6ZM1.5 9.5V8L0 9.5H1.5ZM1.5 12H0L1.5 13.5V12ZM4.5 12H6L4.5 10.5V12ZM4.5 13.5V15L6 13.5H4.5ZM4.5 8V9.5L6 8H4.5ZM1.5 8H0L1.5 9.5V8ZM4.5 5.5H6L4.5 4V5.5ZM1.5 5.5V4L0 5.5H1.5ZM1.5 4H0L1.5 5.5V4ZM4.5 4V5.5L6 4H4.5ZM1.5 1.5V0L0 1.5H1.5ZM4.5 1.5H6L4.5 0V1.5ZM6 4H4.5L6 5.5V4ZM6 1.5V0L4.5 1.5H6ZM10 4V5.5L11.5 4H10ZM10 1.5H11.5L10 0V1.5ZM11.5 4H10L11.5 5.5V4ZM14.5 4V5.5L16 4H14.5ZM11.5 1.5V0L10 1.5H11.5ZM14.5 1.5H16L14.5 0V1.5ZM13.8442 10.8049L14.9049 11.8655L14.9049 11.8655L13.8442 10.8049ZM14.2861 10.3629L15.3468 11.4236L15.3468 9.30226L14.2861 10.3629ZM11.2407 13.4084L10.1801 12.3477L11.2407 13.4084ZM10.0033 13.4084L8.94261 14.469L8.94262 14.469L10.0033 13.4084ZM9.15574 12.5608L10.2164 11.5002L10.2164 11.5002L9.15574 12.5608ZM8.7138 12.1189L7.65314 11.0582L7.65314 13.1795L8.7138 12.1189ZM9.59768 11.235L10.6583 10.1743H8.53702L9.59768 11.235ZM10.0396 11.6769L8.97896 12.7376L8.97896 12.7376L10.0396 11.6769ZM10.622 12.2593L9.56133 13.32L11.6827 13.32L10.622 12.2593ZM12.9603 9.92097L11.8997 8.86031L11.8997 8.86031L12.9603 9.92097ZM13.4023 9.47903L14.4629 8.41837L12.3416 8.41837L13.4023 9.47903ZM1.25 -1.5C-0.268785 -1.5 -1.5 -0.268781 -1.5 1.25H1.5C1.5 1.38807 1.38807 1.5 1.25 1.5V-1.5ZM14.75 -1.5H1.25V1.5H14.75V-1.5ZM17.5 1.25C17.5 -0.268784 16.2688 -1.5 14.75 -1.5V1.5C14.6119 1.5 14.5 1.38807 14.5 1.25H17.5ZM17.5 4.75V1.25H14.5V4.75H17.5ZM17.5 5.5V4.75H14.5V5.5H17.5ZM15.25 7H16V4H15.25V7ZM6 7H15.25V4H6V7ZM7.5 8.75V5.5H4.5V8.75H7.5ZM7.5 9.5V8.75H4.5V9.5H7.5ZM5.25 11H6V8H5.25V11ZM1.5 11H5.25V8H1.5V11ZM3 12V9.5H0V12H3ZM4.5 10.5H1.5V13.5H4.5V10.5ZM6 13.5V12H3V13.5H6ZM1.25 15H4.5V12H1.25V15ZM-1.5 12.25C-1.5 13.7688 -0.268783 15 1.25 15V12C1.38807 12 1.5 12.1119 1.5 12.25H-1.5ZM-1.5 1.25V12.25H1.5V1.25H-1.5ZM4.5 6.5H1.5V9.5H4.5V6.5ZM3 5.5V8H6V5.5H3ZM1.5 7H4.5V4H1.5V7ZM3 8V5.5H0V8H3ZM1.5 5.5H4.5V2.5H1.5V5.5ZM0 1.5V4H3V1.5H0ZM4.5 0H1.5V3H4.5V0ZM6 4V1.5H3V4H6ZM7.5 4V1.5H4.5V4H7.5ZM10 2.5H6V5.5H10V2.5ZM8.5 1.5V4H11.5V1.5H8.5ZM6 3H10V0H6V3ZM11.5 5.5H14.5V2.5H11.5V5.5ZM10 1.5V4H13V1.5H10ZM14.5 0H11.5V3H14.5V0ZM16 4V1.5H13V4H16ZM11.5 17.5C14.8137 17.5 17.5 14.8137 17.5 11.5H14.5C14.5 13.1569 13.1569 14.5 11.5 14.5V17.5ZM5.5 11.5C5.5 14.8137 8.18629 17.5 11.5 17.5V14.5C9.84315 14.5 8.5 13.1569 8.5 11.5H5.5ZM11.5 5.5C8.18629 5.5 5.5 8.18629 5.5 11.5H8.5C8.5 9.84315 9.84315 8.5 11.5 8.5V5.5ZM17.5 11.5C17.5 8.18629 14.8137 5.5 11.5 5.5V8.5C13.1569 8.5 14.5 9.84315 14.5 11.5H17.5ZM14.9049 11.8655L15.3468 11.4236L13.2255 9.30226L12.7835 9.7442L14.9049 11.8655ZM12.3014 14.469L14.9049 11.8655L12.7835 9.7442L10.1801 12.3477L12.3014 14.469ZM8.94262 14.469C9.87011 15.3965 11.3739 15.3965 12.3014 14.469L10.1801 12.3477C10.4241 12.1036 10.8199 12.1036 11.0639 12.3477L8.94262 14.469ZM8.09508 13.6215L8.94261 14.469L11.0639 12.3477L10.2164 11.5002L8.09508 13.6215ZM7.65314 13.1795L8.09508 13.6215L10.2164 11.5002L9.77446 11.0582L7.65314 13.1795ZM8.53702 10.1743L7.65314 11.0582L9.77446 13.1795L10.6583 12.2957L8.53702 10.1743ZM11.1003 10.6163L10.6583 10.1743L8.53702 12.2957L8.97896 12.7376L11.1003 10.6163ZM11.6827 11.1986L11.1003 10.6163L8.97896 12.7376L9.56133 13.32L11.6827 11.1986ZM11.8997 8.86031L9.56133 11.1986L11.6827 13.32L14.021 10.9816L11.8997 8.86031ZM12.3416 8.41837L11.8997 8.86031L14.021 10.9816L14.4629 10.5397L12.3416 8.41837ZM15.3468 9.30226L14.4629 8.41837L12.3416 10.5397L13.2255 11.4236L15.3468 9.30226Z"
          fill="currentColor"
          mask="url(#path-1-inside-1_4629_2028)"
        />
      </g>
      <defs>
        <clipPath id="clip0_4629_2028">
          <rect width="16" height="16" fill="white" />
        </clipPath>
      </defs>
    </svg>
  );
}
