/*
 * ImageToolbox is an image editor for android
 * Copyright (c) 2026 T8RIN (Malik Mukhametzyanov)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 *
 * 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.
 *
 * You should have received a copy of the Apache License
 * along with this program.  If not, see <http://www.apache.org/licenses/LICENSE-2.0>.
 */

package com.t8rin.imagetoolbox.core.resources.icons

import com.t8rin.imagetoolbox.core.resources.Icons
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.unit.dp

val Icons.Outlined.ImageConvert: ImageVector by lazy(LazyThreadSafetyMode.NONE) {
    ImageVector.Builder(
        name = "Outlined.ImageConvert",
        defaultWidth = 24.dp,
        defaultHeight = 24.dp,
        viewportWidth = 24f,
        viewportHeight = 24f
    ).apply {
        path(fill = SolidColor(Color.Black)) {
            moveTo(9.018f, 12.944f)
            horizontalLineToRelative(7.393f)
            curveToRelative(0.148f, 0f, 0.259f, -0.068f, 0.333f, -0.203f)
            reflectiveCurveToRelative(0.062f, -0.265f, -0.037f, -0.388f)
            lineToRelative(-2.033f, -2.717f)
            curveToRelative(-0.074f, -0.099f, -0.173f, -0.148f, -0.296f, -0.148f)
            reflectiveCurveToRelative(-0.222f, 0.049f, -0.296f, 0.148f)
            lineToRelative(-1.922f, 2.569f)
            lineToRelative(-1.368f, -1.83f)
            curveToRelative(-0.074f, -0.099f, -0.173f, -0.148f, -0.296f, -0.148f)
            reflectiveCurveToRelative(-0.222f, 0.049f, -0.296f, 0.148f)
            lineToRelative(-1.479f, 1.978f)
            curveToRelative(-0.099f, 0.123f, -0.111f, 0.253f, -0.037f, 0.388f)
            reflectiveCurveToRelative(0.185f, 0.203f, 0.333f, 0.203f)
            close()
        }
        path(fill = SolidColor(Color.Black)) {
            moveTo(5.239f, 11.268f)
            curveToRelative(0f, 1.31f, 0.33f, 2.527f, 0.989f, 3.652f)
            reflectiveCurveToRelative(1.556f, 2.026f, 2.689f, 2.704f)
            curveToRelative(0.217f, 0.139f, 0.369f, 0.327f, 0.454f, 0.566f)
            reflectiveCurveToRelative(0.066f, 0.466f, -0.058f, 0.682f)
            curveToRelative(-0.124f, 0.231f, -0.314f, 0.381f, -0.57f, 0.451f)
            reflectiveCurveToRelative(-0.501f, 0.042f, -0.733f, -0.081f)
            curveToRelative(-1.443f, -0.832f, -2.576f, -1.957f, -3.399f, -3.374f)
            curveToRelative(-0.823f, -1.418f, -1.234f, -2.951f, -1.234f, -4.599f)
            curveToRelative(0f, -0.401f, 0.027f, -0.794f, 0.081f, -1.179f)
            reflectiveCurveToRelative(0.128f, -0.77f, 0.221f, -1.156f)
            lineToRelative(-0.303f, 0.185f)
            curveToRelative(-0.217f, 0.139f, -0.45f, 0.173f, -0.698f, 0.104f)
            reflectiveCurveToRelative(-0.435f, -0.212f, -0.559f, -0.428f)
            reflectiveCurveToRelative(-0.151f, -0.451f, -0.081f, -0.705f)
            reflectiveCurveToRelative(0.213f, -0.443f, 0.431f, -0.566f)
            lineToRelative(2.817f, -1.618f)
            curveToRelative(0.217f, -0.123f, 0.454f, -0.15f, 0.71f, -0.081f)
            reflectiveCurveToRelative(0.446f, 0.212f, 0.57f, 0.428f)
            lineToRelative(1.63f, 2.773f)
            curveToRelative(0.124f, 0.216f, 0.151f, 0.451f, 0.081f, 0.705f)
            reflectiveCurveToRelative(-0.213f, 0.443f, -0.431f, 0.566f)
            reflectiveCurveToRelative(-0.454f, 0.15f, -0.71f, 0.081f)
            reflectiveCurveToRelative(-0.446f, -0.212f, -0.57f, -0.428f)
            lineToRelative(-0.792f, -1.364f)
            curveToRelative(-0.171f, 0.431f, -0.303f, 0.871f, -0.396f, 1.317f)
            reflectiveCurveToRelative(-0.14f, 0.901f, -0.14f, 1.364f)
            close()
            moveTo(12.688f, 3.849f)
            curveToRelative(-0.636f, 0f, -1.265f, 0.081f, -1.886f, 0.243f)
            reflectiveCurveToRelative(-1.211f, 0.397f, -1.769f, 0.705f)
            curveToRelative(-0.233f, 0.123f, -0.477f, 0.166f, -0.733f, 0.127f)
            reflectiveCurveToRelative(-0.446f, -0.166f, -0.57f, -0.381f)
            curveToRelative(-0.14f, -0.247f, -0.171f, -0.497f, -0.093f, -0.751f)
            reflectiveCurveToRelative(0.241f, -0.451f, 0.489f, -0.589f)
            curveToRelative(0.698f, -0.401f, 1.432f, -0.701f, 2.2f, -0.901f)
            reflectiveCurveToRelative(1.556f, -0.3f, 2.363f, -0.3f)
            curveToRelative(1.226f, 0f, 2.402f, 0.227f, 3.527f, 0.682f)
            reflectiveCurveToRelative(2.13f, 1.113f, 3.015f, 1.976f)
            verticalLineToRelative(-0.347f)
            curveToRelative(0f, -0.262f, 0.089f, -0.482f, 0.268f, -0.659f)
            reflectiveCurveToRelative(0.4f, -0.266f, 0.663f, -0.266f)
            reflectiveCurveToRelative(0.485f, 0.089f, 0.663f, 0.266f)
            reflectiveCurveToRelative(0.268f, 0.397f, 0.268f, 0.659f)
            verticalLineToRelative(3.236f)
            curveToRelative(0f, 0.262f, -0.089f, 0.482f, -0.268f, 0.659f)
            reflectiveCurveToRelative(-0.4f, 0.266f, -0.663f, 0.266f)
            horizontalLineToRelative(-3.259f)
            curveToRelative(-0.264f, 0f, -0.485f, -0.089f, -0.663f, -0.266f)
            reflectiveCurveToRelative(-0.268f, -0.397f, -0.268f, -0.659f)
            reflectiveCurveToRelative(0.089f, -0.482f, 0.268f, -0.659f)
            reflectiveCurveToRelative(0.4f, -0.266f, 0.663f, -0.266f)
            horizontalLineToRelative(1.606f)
            curveToRelative(-0.714f, -0.878f, -1.575f, -1.56f, -2.584f, -2.045f)
            reflectiveCurveToRelative(-2.087f, -0.728f, -3.236f, -0.728f)
            close()
            moveTo(18.322f, 16.122f)
            curveToRelative(0.59f, -0.678f, 1.04f, -1.425f, 1.35f, -2.242f)
            reflectiveCurveToRelative(0.466f, -1.672f, 0.466f, -2.565f)
            curveToRelative(0f, -0.262f, 0.089f, -0.493f, 0.268f, -0.693f)
            curveToRelative(0.178f, -0.2f, 0.4f, -0.3f, 0.663f, -0.3f)
            reflectiveCurveToRelative(0.485f, 0.1f, 0.663f, 0.3f)
            curveToRelative(0.178f, 0.2f, 0.268f, 0.431f, 0.268f, 0.693f)
            curveToRelative(0f, 1.002f, -0.159f, 1.968f, -0.477f, 2.901f)
            reflectiveCurveToRelative(-0.78f, 1.799f, -1.385f, 2.6f)
            curveToRelative(-0.605f, 0.801f, -1.323f, 1.487f, -2.153f, 2.057f)
            curveToRelative(-0.83f, 0.57f, -1.734f, 0.994f, -2.712f, 1.271f)
            lineToRelative(0.233f, 0.139f)
            curveToRelative(0.217f, 0.123f, 0.357f, 0.312f, 0.419f, 0.566f)
            reflectiveCurveToRelative(0.031f, 0.489f, -0.093f, 0.705f)
            curveToRelative(-0.124f, 0.216f, -0.31f, 0.354f, -0.559f, 0.416f)
            curveToRelative(-0.248f, 0.062f, -0.481f, 0.031f, -0.698f, -0.092f)
            lineToRelative(-2.84f, -1.618f)
            curveToRelative(-0.217f, -0.123f, -0.361f, -0.312f, -0.431f, -0.566f)
            reflectiveCurveToRelative(-0.043f, -0.489f, 0.081f, -0.705f)
            lineToRelative(1.63f, -2.797f)
            curveToRelative(0.124f, -0.216f, 0.31f, -0.354f, 0.559f, -0.416f)
            curveToRelative(0.248f, -0.062f, 0.481f, -0.031f, 0.698f, 0.092f)
            reflectiveCurveToRelative(0.361f, 0.312f, 0.431f, 0.566f)
            reflectiveCurveToRelative(0.043f, 0.489f, -0.081f, 0.705f)
            lineToRelative(-0.861f, 1.456f)
            curveToRelative(0.885f, -0.123f, 1.719f, -0.397f, 2.503f, -0.82f)
            reflectiveCurveToRelative(1.47f, -0.975f, 2.06f, -1.653f)
            close()
        }
    }.build()
}

val Icons.TwoTone.ImageConvert: ImageVector by lazy(LazyThreadSafetyMode.NONE) {
    ImageVector.Builder(
        name = "TwoTone.ImageConvert",
        defaultWidth = 24.dp,
        defaultHeight = 24.dp,
        viewportWidth = 24f,
        viewportHeight = 24f
    ).apply {
        path(fill = SolidColor(Color.Black)) {
            moveTo(9.018f, 12.944f)
            horizontalLineToRelative(7.393f)
            curveToRelative(0.148f, 0f, 0.259f, -0.068f, 0.333f, -0.203f)
            reflectiveCurveToRelative(0.062f, -0.265f, -0.037f, -0.388f)
            lineToRelative(-2.033f, -2.717f)
            curveToRelative(-0.074f, -0.099f, -0.173f, -0.148f, -0.296f, -0.148f)
            reflectiveCurveToRelative(-0.222f, 0.049f, -0.296f, 0.148f)
            lineToRelative(-1.922f, 2.569f)
            lineToRelative(-1.368f, -1.83f)
            curveToRelative(-0.074f, -0.099f, -0.173f, -0.148f, -0.296f, -0.148f)
            reflectiveCurveToRelative(-0.222f, 0.049f, -0.296f, 0.148f)
            lineToRelative(-1.479f, 1.978f)
            curveToRelative(-0.099f, 0.123f, -0.111f, 0.253f, -0.037f, 0.388f)
            reflectiveCurveToRelative(0.185f, 0.203f, 0.333f, 0.203f)
            close()
        }
        path(fill = SolidColor(Color.Black)) {
            moveTo(5.239f, 11.268f)
            curveToRelative(0f, 1.31f, 0.33f, 2.527f, 0.989f, 3.652f)
            reflectiveCurveToRelative(1.556f, 2.026f, 2.689f, 2.704f)
            curveToRelative(0.217f, 0.139f, 0.369f, 0.327f, 0.454f, 0.566f)
            reflectiveCurveToRelative(0.066f, 0.466f, -0.058f, 0.682f)
            curveToRelative(-0.124f, 0.231f, -0.314f, 0.381f, -0.57f, 0.451f)
            reflectiveCurveToRelative(-0.501f, 0.042f, -0.733f, -0.081f)
            curveToRelative(-1.443f, -0.832f, -2.576f, -1.957f, -3.399f, -3.374f)
            curveToRelative(-0.823f, -1.418f, -1.234f, -2.951f, -1.234f, -4.599f)
            curveToRelative(0f, -0.401f, 0.027f, -0.794f, 0.081f, -1.179f)
            reflectiveCurveToRelative(0.128f, -0.77f, 0.221f, -1.156f)
            lineToRelative(-0.303f, 0.185f)
            curveToRelative(-0.217f, 0.139f, -0.45f, 0.173f, -0.698f, 0.104f)
            reflectiveCurveToRelative(-0.435f, -0.212f, -0.559f, -0.428f)
            reflectiveCurveToRelative(-0.151f, -0.451f, -0.081f, -0.705f)
            reflectiveCurveToRelative(0.213f, -0.443f, 0.431f, -0.566f)
            lineToRelative(2.817f, -1.618f)
            curveToRelative(0.217f, -0.123f, 0.454f, -0.15f, 0.71f, -0.081f)
            reflectiveCurveToRelative(0.446f, 0.212f, 0.57f, 0.428f)
            lineToRelative(1.63f, 2.773f)
            curveToRelative(0.124f, 0.216f, 0.151f, 0.451f, 0.081f, 0.705f)
            reflectiveCurveToRelative(-0.213f, 0.443f, -0.431f, 0.566f)
            reflectiveCurveToRelative(-0.454f, 0.15f, -0.71f, 0.081f)
            reflectiveCurveToRelative(-0.446f, -0.212f, -0.57f, -0.428f)
            lineToRelative(-0.792f, -1.364f)
            curveToRelative(-0.171f, 0.431f, -0.303f, 0.871f, -0.396f, 1.317f)
            reflectiveCurveToRelative(-0.14f, 0.901f, -0.14f, 1.364f)
            close()
            moveTo(12.688f, 3.849f)
            curveToRelative(-0.636f, 0f, -1.265f, 0.081f, -1.886f, 0.243f)
            reflectiveCurveToRelative(-1.211f, 0.397f, -1.769f, 0.705f)
            curveToRelative(-0.233f, 0.123f, -0.477f, 0.166f, -0.733f, 0.127f)
            reflectiveCurveToRelative(-0.446f, -0.166f, -0.57f, -0.381f)
            curveToRelative(-0.14f, -0.247f, -0.171f, -0.497f, -0.093f, -0.751f)
            reflectiveCurveToRelative(0.241f, -0.451f, 0.489f, -0.589f)
            curveToRelative(0.698f, -0.401f, 1.432f, -0.701f, 2.2f, -0.901f)
            reflectiveCurveToRelative(1.556f, -0.3f, 2.363f, -0.3f)
            curveToRelative(1.226f, 0f, 2.402f, 0.227f, 3.527f, 0.682f)
            reflectiveCurveToRelative(2.13f, 1.113f, 3.015f, 1.976f)
            verticalLineToRelative(-0.347f)
            curveToRelative(0f, -0.262f, 0.089f, -0.482f, 0.268f, -0.659f)
            reflectiveCurveToRelative(0.4f, -0.266f, 0.663f, -0.266f)
            reflectiveCurveToRelative(0.485f, 0.089f, 0.663f, 0.266f)
            reflectiveCurveToRelative(0.268f, 0.397f, 0.268f, 0.659f)
            verticalLineToRelative(3.236f)
            curveToRelative(0f, 0.262f, -0.089f, 0.482f, -0.268f, 0.659f)
            reflectiveCurveToRelative(-0.4f, 0.266f, -0.663f, 0.266f)
            horizontalLineToRelative(-3.259f)
            curveToRelative(-0.264f, 0f, -0.485f, -0.089f, -0.663f, -0.266f)
            reflectiveCurveToRelative(-0.268f, -0.397f, -0.268f, -0.659f)
            reflectiveCurveToRelative(0.089f, -0.482f, 0.268f, -0.659f)
            reflectiveCurveToRelative(0.4f, -0.266f, 0.663f, -0.266f)
            horizontalLineToRelative(1.606f)
            curveToRelative(-0.714f, -0.878f, -1.575f, -1.56f, -2.584f, -2.045f)
            reflectiveCurveToRelative(-2.087f, -0.728f, -3.236f, -0.728f)
            close()
            moveTo(18.322f, 16.122f)
            curveToRelative(0.59f, -0.678f, 1.04f, -1.425f, 1.35f, -2.242f)
            reflectiveCurveToRelative(0.466f, -1.672f, 0.466f, -2.565f)
            curveToRelative(0f, -0.262f, 0.089f, -0.493f, 0.268f, -0.693f)
            curveToRelative(0.178f, -0.2f, 0.4f, -0.3f, 0.663f, -0.3f)
            reflectiveCurveToRelative(0.485f, 0.1f, 0.663f, 0.3f)
            curveToRelative(0.178f, 0.2f, 0.268f, 0.431f, 0.268f, 0.693f)
            curveToRelative(0f, 1.002f, -0.159f, 1.968f, -0.477f, 2.901f)
            reflectiveCurveToRelative(-0.78f, 1.799f, -1.385f, 2.6f)
            curveToRelative(-0.605f, 0.801f, -1.323f, 1.487f, -2.153f, 2.057f)
            curveToRelative(-0.83f, 0.57f, -1.734f, 0.994f, -2.712f, 1.271f)
            lineToRelative(0.233f, 0.139f)
            curveToRelative(0.217f, 0.123f, 0.357f, 0.312f, 0.419f, 0.566f)
            reflectiveCurveToRelative(0.031f, 0.489f, -0.093f, 0.705f)
            curveToRelative(-0.124f, 0.216f, -0.31f, 0.354f, -0.559f, 0.416f)
            curveToRelative(-0.248f, 0.062f, -0.481f, 0.031f, -0.698f, -0.092f)
            lineToRelative(-2.84f, -1.618f)
            curveToRelative(-0.217f, -0.123f, -0.361f, -0.312f, -0.431f, -0.566f)
            reflectiveCurveToRelative(-0.043f, -0.489f, 0.081f, -0.705f)
            lineToRelative(1.63f, -2.797f)
            curveToRelative(0.124f, -0.216f, 0.31f, -0.354f, 0.559f, -0.416f)
            curveToRelative(0.248f, -0.062f, 0.481f, -0.031f, 0.698f, 0.092f)
            reflectiveCurveToRelative(0.361f, 0.312f, 0.431f, 0.566f)
            reflectiveCurveToRelative(0.043f, 0.489f, -0.081f, 0.705f)
            lineToRelative(-0.861f, 1.456f)
            curveToRelative(0.885f, -0.123f, 1.719f, -0.397f, 2.503f, -0.82f)
            reflectiveCurveToRelative(1.47f, -0.975f, 2.06f, -1.653f)
            close()
        }
        path(
            fill = SolidColor(Color.Black),
            fillAlpha = 0.3f,
            strokeAlpha = 0.3f
        ) {
            moveTo(12.296f, 3.716f)
            lineTo(13.134f, 3.716f)
            arcTo(
                7.081f,
                7.081f,
                0f,
                isMoreThanHalf = false,
                isPositiveArc = true,
                20.215f,
                10.797f
            )
            lineTo(20.215f, 11.635f)
            arcTo(
                7.081f,
                7.081f,
                0f,
                isMoreThanHalf = false,
                isPositiveArc = true,
                13.134f,
                18.716f
            )
            lineTo(12.296f, 18.716f)
            arcTo(7.081f, 7.081f, 0f, isMoreThanHalf = false, isPositiveArc = true, 5.215f, 11.635f)
            lineTo(5.215f, 10.797f)
            arcTo(7.081f, 7.081f, 0f, isMoreThanHalf = false, isPositiveArc = true, 12.296f, 3.716f)
            close()
        }
    }.build()
}