/*
 * 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.Rounded.Palette: ImageVector by lazy(LazyThreadSafetyMode.NONE) {
    ImageVector.Builder(
        name = "Rounded.Palette",
        defaultWidth = 24.dp,
        defaultHeight = 24.dp,
        viewportWidth = 960f,
        viewportHeight = 960f
    ).apply {
        path(fill = SolidColor(Color.Black)) {
            moveTo(480f, 880f)
            quadToRelative(-82f, 0f, -155f, -31.5f)
            reflectiveQuadToRelative(-127.5f, -86f)
            quadTo(143f, 708f, 111.5f, 635f)
            reflectiveQuadTo(80f, 480f)
            quadToRelative(0f, -83f, 32.5f, -156f)
            reflectiveQuadToRelative(88f, -127f)
            quadTo(256f, 143f, 330f, 111.5f)
            reflectiveQuadTo(488f, 80f)
            quadToRelative(80f, 0f, 151f, 27.5f)
            reflectiveQuadToRelative(124.5f, 76f)
            quadToRelative(53.5f, 48.5f, 85f, 115f)
            reflectiveQuadTo(880f, 442f)
            quadToRelative(0f, 115f, -70f, 176.5f)
            reflectiveQuadTo(640f, 680f)
            horizontalLineToRelative(-74f)
            quadToRelative(-9f, 0f, -12.5f, 5f)
            reflectiveQuadToRelative(-3.5f, 11f)
            quadToRelative(0f, 12f, 15f, 34.5f)
            reflectiveQuadToRelative(15f, 51.5f)
            quadToRelative(0f, 50f, -27.5f, 74f)
            reflectiveQuadTo(480f, 880f)
            close()
            moveTo(303f, 503f)
            quadToRelative(17f, -17f, 17f, -43f)
            reflectiveQuadToRelative(-17f, -43f)
            quadToRelative(-17f, -17f, -43f, -17f)
            reflectiveQuadToRelative(-43f, 17f)
            quadToRelative(-17f, 17f, -17f, 43f)
            reflectiveQuadToRelative(17f, 43f)
            quadToRelative(17f, 17f, 43f, 17f)
            reflectiveQuadToRelative(43f, -17f)
            close()
            moveTo(423f, 343f)
            quadToRelative(17f, -17f, 17f, -43f)
            reflectiveQuadToRelative(-17f, -43f)
            quadToRelative(-17f, -17f, -43f, -17f)
            reflectiveQuadToRelative(-43f, 17f)
            quadToRelative(-17f, 17f, -17f, 43f)
            reflectiveQuadToRelative(17f, 43f)
            quadToRelative(17f, 17f, 43f, 17f)
            reflectiveQuadToRelative(43f, -17f)
            close()
            moveTo(623f, 343f)
            quadToRelative(17f, -17f, 17f, -43f)
            reflectiveQuadToRelative(-17f, -43f)
            quadToRelative(-17f, -17f, -43f, -17f)
            reflectiveQuadToRelative(-43f, 17f)
            quadToRelative(-17f, 17f, -17f, 43f)
            reflectiveQuadToRelative(17f, 43f)
            quadToRelative(17f, 17f, 43f, 17f)
            reflectiveQuadToRelative(43f, -17f)
            close()
            moveTo(743f, 503f)
            quadToRelative(17f, -17f, 17f, -43f)
            reflectiveQuadToRelative(-17f, -43f)
            quadToRelative(-17f, -17f, -43f, -17f)
            reflectiveQuadToRelative(-43f, 17f)
            quadToRelative(-17f, 17f, -17f, 43f)
            reflectiveQuadToRelative(17f, 43f)
            quadToRelative(17f, 17f, 43f, 17f)
            reflectiveQuadToRelative(43f, -17f)
            close()
        }
    }.build()
}

val Icons.Outlined.Palette: ImageVector by lazy(LazyThreadSafetyMode.NONE) {
    ImageVector.Builder(
        name = "Outlined.Palette",
        defaultWidth = 24.dp,
        defaultHeight = 24.dp,
        viewportWidth = 960f,
        viewportHeight = 960f
    ).apply {
        path(fill = SolidColor(Color.Black)) {
            moveTo(480f, 880f)
            quadToRelative(-82f, 0f, -155f, -31.5f)
            reflectiveQuadToRelative(-127.5f, -86f)
            quadTo(143f, 708f, 111.5f, 635f)
            reflectiveQuadTo(80f, 480f)
            quadToRelative(0f, -83f, 32.5f, -156f)
            reflectiveQuadToRelative(88f, -127f)
            quadTo(256f, 143f, 330f, 111.5f)
            reflectiveQuadTo(488f, 80f)
            quadToRelative(80f, 0f, 151f, 27.5f)
            reflectiveQuadToRelative(124.5f, 76f)
            quadToRelative(53.5f, 48.5f, 85f, 115f)
            reflectiveQuadTo(880f, 442f)
            quadToRelative(0f, 115f, -70f, 176.5f)
            reflectiveQuadTo(640f, 680f)
            horizontalLineToRelative(-74f)
            quadToRelative(-9f, 0f, -12.5f, 5f)
            reflectiveQuadToRelative(-3.5f, 11f)
            quadToRelative(0f, 12f, 15f, 34.5f)
            reflectiveQuadToRelative(15f, 51.5f)
            quadToRelative(0f, 50f, -27.5f, 74f)
            reflectiveQuadTo(480f, 880f)
            close()
            moveTo(480f, 480f)
            close()
            moveTo(303f, 503f)
            quadToRelative(17f, -17f, 17f, -43f)
            reflectiveQuadToRelative(-17f, -43f)
            quadToRelative(-17f, -17f, -43f, -17f)
            reflectiveQuadToRelative(-43f, 17f)
            quadToRelative(-17f, 17f, -17f, 43f)
            reflectiveQuadToRelative(17f, 43f)
            quadToRelative(17f, 17f, 43f, 17f)
            reflectiveQuadToRelative(43f, -17f)
            close()
            moveTo(423f, 343f)
            quadToRelative(17f, -17f, 17f, -43f)
            reflectiveQuadToRelative(-17f, -43f)
            quadToRelative(-17f, -17f, -43f, -17f)
            reflectiveQuadToRelative(-43f, 17f)
            quadToRelative(-17f, 17f, -17f, 43f)
            reflectiveQuadToRelative(17f, 43f)
            quadToRelative(17f, 17f, 43f, 17f)
            reflectiveQuadToRelative(43f, -17f)
            close()
            moveTo(623f, 343f)
            quadToRelative(17f, -17f, 17f, -43f)
            reflectiveQuadToRelative(-17f, -43f)
            quadToRelative(-17f, -17f, -43f, -17f)
            reflectiveQuadToRelative(-43f, 17f)
            quadToRelative(-17f, 17f, -17f, 43f)
            reflectiveQuadToRelative(17f, 43f)
            quadToRelative(17f, 17f, 43f, 17f)
            reflectiveQuadToRelative(43f, -17f)
            close()
            moveTo(743f, 503f)
            quadToRelative(17f, -17f, 17f, -43f)
            reflectiveQuadToRelative(-17f, -43f)
            quadToRelative(-17f, -17f, -43f, -17f)
            reflectiveQuadToRelative(-43f, 17f)
            quadToRelative(-17f, 17f, -17f, 43f)
            reflectiveQuadToRelative(17f, 43f)
            quadToRelative(17f, 17f, 43f, 17f)
            reflectiveQuadToRelative(43f, -17f)
            close()
            moveTo(480f, 800f)
            quadToRelative(9f, 0f, 14.5f, -5f)
            reflectiveQuadToRelative(5.5f, -13f)
            quadToRelative(0f, -14f, -15f, -33f)
            reflectiveQuadToRelative(-15f, -57f)
            quadToRelative(0f, -42f, 29f, -67f)
            reflectiveQuadToRelative(71f, -25f)
            horizontalLineToRelative(70f)
            quadToRelative(66f, 0f, 113f, -38.5f)
            reflectiveQuadTo(800f, 442f)
            quadToRelative(0f, -121f, -92.5f, -201.5f)
            reflectiveQuadTo(488f, 160f)
            quadToRelative(-136f, 0f, -232f, 93f)
            reflectiveQuadToRelative(-96f, 227f)
            quadToRelative(0f, 133f, 93.5f, 226.5f)
            reflectiveQuadTo(480f, 800f)
            close()
        }
    }.build()
}

val Icons.TwoTone.Palette: ImageVector by lazy(LazyThreadSafetyMode.NONE) {
    ImageVector.Builder(
        name = "TwoTone.Palette",
        defaultWidth = 24.dp,
        defaultHeight = 24.dp,
        viewportWidth = 24f,
        viewportHeight = 24f
    ).apply {
        path(fill = SolidColor(Color.Black)) {
            moveTo(7.575f, 12.575f)
            curveToRelative(0.283f, -0.283f, 0.425f, -0.642f, 0.425f, -1.075f)
            curveToRelative(0f, -0.433f, -0.142f, -0.792f, -0.425f, -1.075f)
            reflectiveCurveToRelative(-0.642f, -0.425f, -1.075f, -0.425f)
            curveToRelative(-0.433f, 0f, -0.792f, 0.142f, -1.075f, 0.425f)
            reflectiveCurveToRelative(-0.425f, 0.642f, -0.425f, 1.075f)
            curveToRelative(0f, 0.433f, 0.142f, 0.792f, 0.425f, 1.075f)
            reflectiveCurveToRelative(0.642f, 0.425f, 1.075f, 0.425f)
            curveToRelative(0.433f, 0f, 0.792f, -0.142f, 1.075f, -0.425f)
            close()
        }
        path(fill = SolidColor(Color.Black)) {
            moveTo(10.575f, 8.575f)
            curveToRelative(0.283f, -0.283f, 0.425f, -0.642f, 0.425f, -1.075f)
            reflectiveCurveToRelative(-0.142f, -0.792f, -0.425f, -1.075f)
            reflectiveCurveToRelative(-0.642f, -0.425f, -1.075f, -0.425f)
            reflectiveCurveToRelative(-0.792f, 0.142f, -1.075f, 0.425f)
            reflectiveCurveToRelative(-0.425f, 0.642f, -0.425f, 1.075f)
            reflectiveCurveToRelative(0.142f, 0.792f, 0.425f, 1.075f)
            reflectiveCurveToRelative(0.642f, 0.425f, 1.075f, 0.425f)
            reflectiveCurveToRelative(0.792f, -0.142f, 1.075f, -0.425f)
            close()
        }
        path(fill = SolidColor(Color.Black)) {
            moveTo(15.575f, 8.575f)
            curveToRelative(0.283f, -0.283f, 0.425f, -0.642f, 0.425f, -1.075f)
            reflectiveCurveToRelative(-0.142f, -0.792f, -0.425f, -1.075f)
            reflectiveCurveToRelative(-0.642f, -0.425f, -1.075f, -0.425f)
            reflectiveCurveToRelative(-0.792f, 0.142f, -1.075f, 0.425f)
            reflectiveCurveToRelative(-0.425f, 0.642f, -0.425f, 1.075f)
            reflectiveCurveToRelative(0.142f, 0.792f, 0.425f, 1.075f)
            reflectiveCurveToRelative(0.642f, 0.425f, 1.075f, 0.425f)
            reflectiveCurveToRelative(0.792f, -0.142f, 1.075f, -0.425f)
            close()
        }
        path(fill = SolidColor(Color.Black)) {
            moveTo(18.575f, 12.575f)
            curveToRelative(0.283f, -0.283f, 0.425f, -0.642f, 0.425f, -1.075f)
            curveToRelative(0f, -0.433f, -0.142f, -0.792f, -0.425f, -1.075f)
            reflectiveCurveToRelative(-0.642f, -0.425f, -1.075f, -0.425f)
            reflectiveCurveToRelative(-0.792f, 0.142f, -1.075f, 0.425f)
            reflectiveCurveToRelative(-0.425f, 0.642f, -0.425f, 1.075f)
            curveToRelative(0f, 0.433f, 0.142f, 0.792f, 0.425f, 1.075f)
            reflectiveCurveToRelative(0.642f, 0.425f, 1.075f, 0.425f)
            reflectiveCurveToRelative(0.792f, -0.142f, 1.075f, -0.425f)
            close()
        }
        path(fill = SolidColor(Color.Black)) {
            moveTo(21.213f, 7.463f)
            curveToRelative(-0.525f, -1.108f, -1.233f, -2.067f, -2.125f, -2.875f)
            curveToRelative(-0.892f, -0.808f, -1.929f, -1.442f, -3.113f, -1.9f)
            curveToRelative(-1.183f, -0.458f, -2.442f, -0.688f, -3.775f, -0.688f)
            curveToRelative(-1.4f, 0f, -2.717f, 0.263f, -3.95f, 0.787f)
            curveToRelative(-1.233f, 0.525f, -2.313f, 1.238f, -3.237f, 2.138f)
            curveToRelative(-0.925f, 0.9f, -1.658f, 1.958f, -2.2f, 3.175f)
            curveToRelative(-0.542f, 1.217f, -0.813f, 2.517f, -0.813f, 3.9f)
            curveToRelative(0f, 1.367f, 0.263f, 2.658f, 0.787f, 3.875f)
            curveToRelative(0.525f, 1.217f, 1.242f, 2.279f, 2.15f, 3.188f)
            reflectiveCurveToRelative(1.971f, 1.625f, 3.188f, 2.15f)
            curveToRelative(1.217f, 0.525f, 2.508f, 0.787f, 3.875f, 0.787f)
            curveToRelative(0.75f, 0f, 1.354f, -0.2f, 1.813f, -0.6f)
            curveToRelative(0.458f, -0.4f, 0.688f, -1.017f, 0.688f, -1.85f)
            curveToRelative(0f, -0.483f, -0.125f, -0.912f, -0.375f, -1.287f)
            reflectiveCurveToRelative(-0.375f, -0.663f, -0.375f, -0.862f)
            curveToRelative(0f, -0.1f, 0.029f, -0.192f, 0.088f, -0.275f)
            curveToRelative(0.058f, -0.083f, 0.162f, -0.125f, 0.313f, -0.125f)
            horizontalLineToRelative(1.85f)
            curveToRelative(1.667f, 0f, 3.083f, -0.513f, 4.25f, -1.537f)
            curveToRelative(1.167f, -1.025f, 1.75f, -2.496f, 1.75f, -4.413f)
            curveToRelative(0f, -1.283f, -0.263f, -2.479f, -0.787f, -3.587f)
            close()
            moveTo(18.825f, 14.037f)
            curveToRelative(-0.783f, 0.642f, -1.725f, 0.963f, -2.825f, 0.963f)
            horizontalLineToRelative(-1.75f)
            curveToRelative(-0.7f, 0f, -1.292f, 0.208f, -1.775f, 0.625f)
            reflectiveCurveToRelative(-0.725f, 0.975f, -0.725f, 1.675f)
            curveToRelative(0f, 0.633f, 0.125f, 1.108f, 0.375f, 1.425f)
            curveToRelative(0.25f, 0.317f, 0.375f, 0.592f, 0.375f, 0.825f)
            curveToRelative(0f, 0.133f, -0.046f, 0.242f, -0.138f, 0.325f)
            reflectiveCurveToRelative(-0.212f, 0.125f, -0.362f, 0.125f)
            curveToRelative(-2.217f, 0f, -4.104f, -0.779f, -5.662f, -2.338f)
            curveToRelative(-1.558f, -1.558f, -2.338f, -3.446f, -2.338f, -5.662f)
            curveToRelative(0f, -2.233f, 0.8f, -4.125f, 2.4f, -5.675f)
            curveToRelative(1.6f, -1.55f, 3.533f, -2.325f, 5.8f, -2.325f)
            curveToRelative(2.117f, 0f, 3.946f, 0.671f, 5.487f, 2.013f)
            reflectiveCurveToRelative(2.313f, 3.021f, 2.313f, 5.037f)
            curveToRelative(0f, 1.35f, -0.392f, 2.346f, -1.175f, 2.987f)
            close()
        }
        path(
            fill = SolidColor(Color.Black),
            fillAlpha = 0.3f,
            strokeAlpha = 0.3f
        ) {
            moveTo(12f, 20f)
            curveToRelative(0.15f, 0f, 0.271f, -0.042f, 0.363f, -0.125f)
            reflectiveCurveToRelative(0.138f, -0.192f, 0.138f, -0.325f)
            curveToRelative(0f, -0.233f, -0.125f, -0.508f, -0.375f, -0.825f)
            reflectiveCurveToRelative(-0.375f, -0.792f, -0.375f, -1.425f)
            curveToRelative(0f, -0.7f, 0.242f, -1.258f, 0.725f, -1.675f)
            curveToRelative(0.483f, -0.417f, 1.075f, -0.625f, 1.775f, -0.625f)
            horizontalLineToRelative(1.75f)
            curveToRelative(1.1f, 0f, 2.042f, -0.321f, 2.825f, -0.962f)
            reflectiveCurveToRelative(1.175f, -1.638f, 1.175f, -2.987f)
            curveToRelative(0f, -2.017f, -0.771f, -3.696f, -2.313f, -5.037f)
            reflectiveCurveToRelative(-3.371f, -2.013f, -5.488f, -2.013f)
            curveToRelative(-2.267f, 0f, -4.2f, 0.775f, -5.8f, 2.325f)
            reflectiveCurveToRelative(-2.4f, 3.442f, -2.4f, 5.675f)
            curveToRelative(0f, 2.217f, 0.779f, 4.104f, 2.338f, 5.662f)
            curveToRelative(1.558f, 1.558f, 3.446f, 2.338f, 5.662f, 2.338f)
            close()
        }
    }.build()
}