/*
 * 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 TextHighlight: 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="text-highlight" ref={ref} {...props}>
            <path
                d={isLarge ? "M320 60C309 60 300 69 300 80V320C300 331 309 340 320 340S340 349 340 360S331 380 320 380C304.6 380 290.6 374 280 364.4C269.4000000000001 374 255.4 380 240 380C229 380 220 371 220 360S229 340 240 340S260 331 260 320V80C260 69 251 60 240 60S220 51 220 40S229 20 240 20C255.4 20 269.4000000000001 26 280 35.6C290.6 26 304.6 20 320 20C331 20 340 29 340 40S331 60 320 60M240 140H40V260H240V300H20C9 300 0 291 0 280V120C0 109 9 100 20 100H240zM380 300H320V260H360V140H320V100H380C391 100 400 109 400 120V280C400 291 391 300 380 300" : "M180 120H40V200H180V240H20C9 240 0 231 0 220V100C0 89 9 80 20 80H180zM260 60H240V260H260C271 260 280 269 280 280S271 300 260 300H240C232.6 300 226 297.8 220 294.4C214 297.8 207.4 300 200 300H180C169 300 160 291 160 280S169 260 180 260H200V60H180C169 60 160 51 160 40S169 20 180 20H200C207.4 20 214 22.2 220 25.6C226 22.2 232.6 20 240 20H260C271 20 280 29 280 40S271 60 260 60M300 240H260V200H280V120H260V80H300C311 80 320 89 320 100V220C320 231 311 240 300 240"}
                fillRule="evenodd"
                transform={`scale(0.05, -0.05) translate(${translation}, ${translation})`}
                style={style}
            />
        </SVGIconContainer>
   );
});
TextHighlight.displayName = `Blueprint6.Icon.TextHighlight`;
export default TextHighlight;
