/*
 * 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 DragHandleVertical: 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="drag-handle-vertical" ref={ref} {...props}>
            <path
                d={isLarge ? "M150 280C133.4 280 120 266.6 120 250S133.4 220 150 220S180 233.4 180 250S166.6 280 150 280M150 180C133.4 180 120 166.6 120 150S133.4 120 150 120S180 133.4 180 150S166.6 180 150 180M150 80C133.4 80 120 66.6 120 50S133.4 20 150 20S180 33.4 180 50S166.6 80 150 80M250 320C266.6 320 280 333.4 280 350S266.6 380 250 380S220 366.6 220 350S233.4 320 250 320M150 380C133.4 380 120 366.6 120 350S133.4 320 150 320S180 333.4 180 350S166.6 380 150 380M250 180C233.4 180 220 166.6 220 150S233.4 120 250 120S280 133.4 280 150S266.6 180 250 180M250 80C233.4 80 220 66.6 220 50S233.4 20 250 20S280 33.4 280 50S266.6 80 250 80M250 280C233.4 280 220 266.6 220 250S233.4 220 250 220S280 233.4 280 250S266.6 280 250 280" : "M120 140C109 140 100 131 100 120S109 100 120 100S140 109 140 120S131 140 120 140M200 260C211 260 220 269 220 280S211 300 200 300S180 291 180 280S189 260 200 260M120 60C109 60 100 51 100 40S109 20 120 20S140 29 140 40S131 60 120 60M120 220C109 220 100 211 100 200S109 180 120 180S140 189 140 200S131 220 120 220M120 300C109 300 100 291 100 280S109 260 120 260S140 269 140 280S131 300 120 300M200 140C189 140 180 131 180 120S189 100 200 100S220 109 220 120S211 140 200 140M200 220C189 220 180 211 180 200S189 180 200 180S220 189 220 200S211 220 200 220M200 60C189 60 180 51 180 40S189 20 200 20S220 29 220 40S211 60 200 60"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
DragHandleVertical.displayName = `Blueprint6.Icon.DragHandleVertical`;
export default DragHandleVertical;
