/*
 * Copyright 2024 Palantir Technologies, Inc. All rights reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import * as React from "react";
import type { SVGIconProps } from "../../svgIconProps";
import { IconSize } from "../../iconTypes";
import { SVGIconContainer } from "../../svgIconContainer";

export const InnerJoin: React.FC<SVGIconProps> = React.forwardRef<any, SVGIconProps>((props, ref) => {
    const isLarge = (props.size ?? IconSize.STANDARD) >= IconSize.LARGE;
    const pixelGridSize = isLarge ? IconSize.LARGE : IconSize.STANDARD;
    const translation = `${-1 * pixelGridSize / 0.05 / 2}`;
    const style = { transformOrigin: "center" };
    return (
        <SVGIconContainer iconName="inner-join" ref={ref} {...props}>
            <path
                d={isLarge ? "M174 306C148 280 130 242 130 200S146 120 174 94C158 84 140 80 120 80C54 80 0 134 0 200S54 320 120 320C140 320 158 316 174 306M107.2 121C96.2 145 90 171.8 90 200S96.2 255 107.2 279A80.02 80.02 0 0 1 107.2 121M280 320C346 320 400 266 400 200S346 80 280 80C260 80 242 84 226 94C252.0000000000001 120 270 158 270 200S254 278 226 306C242 316 260 320 280 320M292 279C303 255 309.2 228.2 309.2 200S303 145 292 121C330 127.2000000000001 359.2000000000001 160.2000000000001 359.2000000000001 200S330 272.8 292 279M200 290C176 266 160 236 160 200S176 134 200 112C224 134 240 166 240 202S224 268 200 290" : "M132 254C106 232 90 198 90 160S106 88 132 66C122 62 112 60 100 60C44 60 0 104 0 160S44 260 100 260C112 260 122 258 132 254M92.8 80.4C78.4 103.4 70 130.8 70 160S78.4 216.6 92.8 239.6C52 236 20 201.8 20 160S52 84 92.8 80.4M160 240C136 222 120 192 120 160S136 98 160 80C184 98 200 126 200 160S184 222 160 240M220 260C276 260 320 216 320 160S276 60 220 60C208 60 198 62 188 66C214 88 230 124 230 160S214 230 188 254.0000000000001C198 258 208 260 220 260M227 239.6C241.6 216.6 249.8 189.2 249.8 160S241.4 103.4 227 80.4C267.8 84 299.8 118.4 299.8 160S267.8 236 227 239.6"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
InnerJoin.displayName = `Blueprint6.Icon.InnerJoin`;
export default InnerJoin;
