/*
 * 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.VisibilityOff: ImageVector by lazy(LazyThreadSafetyMode.NONE) {
    ImageVector.Builder(
        name = "Rounded.VisibilityOff",
        defaultWidth = 24.dp,
        defaultHeight = 24.dp,
        viewportWidth = 960f,
        viewportHeight = 960f
    ).apply {
        path(fill = SolidColor(Color.Black)) {
            moveTo(764f, 876f)
            lineTo(624f, 738f)
            quadToRelative(-35f, 11f, -71f, 16.5f)
            reflectiveQuadToRelative(-73f, 5.5f)
            quadToRelative(-134f, 0f, -245f, -72f)
            reflectiveQuadTo(61f, 498f)
            quadToRelative(-5f, -9f, -7.5f, -18.5f)
            reflectiveQuadTo(51f, 460f)
            quadToRelative(0f, -10f, 2.5f, -19.5f)
            reflectiveQuadTo(61f, 422f)
            quadToRelative(22f, -39f, 47f, -76f)
            reflectiveQuadToRelative(58f, -66f)
            lineToRelative(-83f, -84f)
            quadToRelative(-11f, -11f, -11f, -27.5f)
            reflectiveQuadTo(84f, 140f)
            quadToRelative(11f, -11f, 28f, -11f)
            reflectiveQuadToRelative(28f, 11f)
            lineToRelative(680f, 680f)
            quadToRelative(11f, 11f, 11.5f, 27.5f)
            reflectiveQuadTo(820f, 876f)
            quadToRelative(-11f, 11f, -28f, 11f)
            reflectiveQuadToRelative(-28f, -11f)
            close()
            moveTo(480f, 640f)
            quadToRelative(11f, 0f, 21f, -1f)
            reflectiveQuadToRelative(20f, -4f)
            lineTo(305f, 419f)
            quadToRelative(-3f, 10f, -4f, 20f)
            reflectiveQuadToRelative(-1f, 21f)
            quadToRelative(0f, 75f, 52.5f, 127.5f)
            reflectiveQuadTo(480f, 640f)
            close()
            moveTo(480f, 160f)
            quadToRelative(134f, 0f, 245.5f, 72.5f)
            reflectiveQuadTo(900f, 423f)
            quadToRelative(5f, 8f, 7.5f, 17.5f)
            reflectiveQuadTo(910f, 460f)
            quadToRelative(0f, 10f, -2f, 19.5f)
            reflectiveQuadToRelative(-7f, 17.5f)
            quadToRelative(-19f, 37f, -42.5f, 70f)
            reflectiveQuadTo(806f, 629f)
            quadToRelative(-14f, 14f, -33f, 13f)
            reflectiveQuadToRelative(-33f, -15f)
            lineToRelative(-80f, -80f)
            quadToRelative(-7f, -7f, -9f, -16.5f)
            reflectiveQuadToRelative(1f, -19.5f)
            quadToRelative(4f, -13f, 6f, -25f)
            reflectiveQuadToRelative(2f, -26f)
            quadToRelative(0f, -75f, -52.5f, -127.5f)
            reflectiveQuadTo(480f, 280f)
            quadToRelative(-14f, 0f, -26f, 2f)
            reflectiveQuadToRelative(-25f, 6f)
            quadToRelative(-10f, 3f, -20f, 1f)
            reflectiveQuadToRelative(-17f, -9f)
            lineToRelative(-33f, -33f)
            quadToRelative(-19f, -19f, -12.5f, -44f)
            reflectiveQuadToRelative(31.5f, -32f)
            quadToRelative(25f, -5f, 50.5f, -8f)
            reflectiveQuadToRelative(51.5f, -3f)
            close()
            moveTo(559f, 386f)
            quadToRelative(11f, 13f, 18.5f, 28.5f)
            reflectiveQuadTo(587f, 447f)
            quadToRelative(1f, 8f, -6f, 11f)
            reflectiveQuadToRelative(-13f, -3f)
            lineToRelative(-82f, -82f)
            quadToRelative(-6f, -6f, -2.5f, -13f)
            reflectiveQuadToRelative(11.5f, -7f)
            quadToRelative(19f, 2f, 35f, 10.5f)
            reflectiveQuadToRelative(29f, 22.5f)
            close()
        }
    }.build()
}

val Icons.Outlined.VisibilityOff: ImageVector by lazy(LazyThreadSafetyMode.NONE) {
    ImageVector.Builder(
        name = "Outlined.VisibilityOff",
        defaultWidth = 24.dp,
        defaultHeight = 24.dp,
        viewportWidth = 960f,
        viewportHeight = 960f
    ).apply {
        path(fill = SolidColor(Color.Black)) {
            moveTo(607f, 333f)
            quadToRelative(29f, 29f, 42.5f, 66f)
            reflectiveQuadToRelative(9.5f, 76f)
            quadToRelative(0f, 15f, -11f, 25.5f)
            reflectiveQuadTo(622f, 511f)
            quadToRelative(-15f, 0f, -25.5f, -10.5f)
            reflectiveQuadTo(586f, 475f)
            quadToRelative(5f, -26f, -3f, -50f)
            reflectiveQuadToRelative(-25f, -41f)
            quadToRelative(-17f, -17f, -41f, -26f)
            reflectiveQuadToRelative(-51f, -4f)
            quadToRelative(-15f, 0f, -25.5f, -11f)
            reflectiveQuadTo(430f, 317f)
            quadToRelative(0f, -15f, 10.5f, -25.5f)
            reflectiveQuadTo(466f, 281f)
            quadToRelative(38f, -4f, 75f, 9.5f)
            reflectiveQuadToRelative(66f, 42.5f)
            close()
            moveTo(480f, 240f)
            quadToRelative(-19f, 0f, -37f, 1.5f)
            reflectiveQuadToRelative(-36f, 5.5f)
            quadToRelative(-17f, 3f, -30.5f, -5f)
            reflectiveQuadTo(358f, 218f)
            quadToRelative(-5f, -16f, 3.5f, -31f)
            reflectiveQuadToRelative(24.5f, -18f)
            quadToRelative(23f, -5f, 46.5f, -7f)
            reflectiveQuadToRelative(47.5f, -2f)
            quadToRelative(137f, 0f, 250.5f, 72f)
            reflectiveQuadTo(904f, 426f)
            quadToRelative(4f, 8f, 6f, 16.5f)
            reflectiveQuadToRelative(2f, 17.5f)
            quadToRelative(0f, 9f, -1.5f, 17.5f)
            reflectiveQuadTo(905f, 494f)
            quadToRelative(-18f, 40f, -44.5f, 75f)
            reflectiveQuadTo(802f, 633f)
            quadToRelative(-12f, 11f, -28f, 9f)
            reflectiveQuadToRelative(-26f, -16f)
            quadToRelative(-10f, -14f, -8.5f, -30.5f)
            reflectiveQuadTo(753f, 568f)
            quadToRelative(24f, -23f, 44f, -50f)
            reflectiveQuadToRelative(35f, -58f)
            quadToRelative(-50f, -101f, -144.5f, -160.5f)
            reflectiveQuadTo(480f, 240f)
            close()
            moveTo(480f, 760f)
            quadToRelative(-134f, 0f, -245f, -72.5f)
            reflectiveQuadTo(60f, 497f)
            quadToRelative(-5f, -8f, -7.5f, -17.5f)
            reflectiveQuadTo(50f, 460f)
            quadToRelative(0f, -10f, 2f, -19f)
            reflectiveQuadToRelative(7f, -18f)
            quadToRelative(20f, -40f, 46.5f, -76.5f)
            reflectiveQuadTo(166f, 280f)
            lineToRelative(-83f, -84f)
            quadToRelative(-11f, -12f, -10.5f, -28.5f)
            reflectiveQuadTo(84f, 140f)
            quadToRelative(11f, -11f, 28f, -11f)
            reflectiveQuadToRelative(28f, 11f)
            lineToRelative(680f, 680f)
            quadToRelative(11f, 11f, 11.5f, 27.5f)
            reflectiveQuadTo(820f, 876f)
            quadToRelative(-11f, 11f, -28f, 11f)
            reflectiveQuadToRelative(-28f, -11f)
            lineTo(624f, 738f)
            quadToRelative(-35f, 11f, -71f, 16.5f)
            reflectiveQuadToRelative(-73f, 5.5f)
            close()
            moveTo(222f, 336f)
            quadToRelative(-29f, 26f, -53f, 57f)
            reflectiveQuadToRelative(-41f, 67f)
            quadToRelative(50f, 101f, 144.5f, 160.5f)
            reflectiveQuadTo(480f, 680f)
            quadToRelative(20f, 0f, 39f, -2.5f)
            reflectiveQuadToRelative(39f, -5.5f)
            lineToRelative(-36f, -38f)
            quadToRelative(-11f, 3f, -21f, 4.5f)
            reflectiveQuadToRelative(-21f, 1.5f)
            quadToRelative(-75f, 0f, -127.5f, -52.5f)
            reflectiveQuadTo(300f, 460f)
            quadToRelative(0f, -11f, 1.5f, -21f)
            reflectiveQuadToRelative(4.5f, -21f)
            lineToRelative(-84f, -82f)
            close()
            moveTo(541f, 429f)
            close()
            moveTo(390f, 504f)
            close()
        }
    }.build()
}
