package net.thunderbird.core.ui.compose.designsystem.atom.icon.outlined

import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.tooling.preview.Preview
import net.thunderbird.core.ui.compose.designsystem.atom.icon.Icon
import net.thunderbird.core.ui.compose.designsystem.atom.icon.icon
import net.thunderbird.core.ui.compose.designsystem.atom.icon.iconPath

@Suppress("MagicNumber")
internal val OutlinedSmileIcon: ImageVector by lazy {
    icon(
        name = "OutlinedSmileIcon",
        viewportWidth = 960.0f,
        viewportHeight = 960.0f,
    ) {
        iconPath {
            moveTo(x = 620.0f, y = 440.0f)
            quadToRelative(
                dx1 = 25.0f,
                dy1 = 0.0f,
                dx2 = 42.5f,
                dy2 = -17.5f,
            )
            reflectiveQuadTo(
                x1 = 680.0f,
                y1 = 380.0f,
            )
            quadToRelative(
                dx1 = 0.0f,
                dy1 = -25.0f,
                dx2 = -17.5f,
                dy2 = -42.5f,
            )
            reflectiveQuadTo(
                x1 = 620.0f,
                y1 = 320.0f,
            )
            quadToRelative(
                dx1 = -25.0f,
                dy1 = 0.0f,
                dx2 = -42.5f,
                dy2 = 17.5f,
            )
            reflectiveQuadTo(
                x1 = 560.0f,
                y1 = 380.0f,
            )
            quadToRelative(
                dx1 = 0.0f,
                dy1 = 25.0f,
                dx2 = 17.5f,
                dy2 = 42.5f,
            )
            reflectiveQuadTo(
                x1 = 620.0f,
                y1 = 440.0f,
            )
            close()
            moveToRelative(dx = -280.0f, dy = 0.0f)
            quadToRelative(
                dx1 = 25.0f,
                dy1 = 0.0f,
                dx2 = 42.5f,
                dy2 = -17.5f,
            )
            reflectiveQuadTo(
                x1 = 400.0f,
                y1 = 380.0f,
            )
            quadToRelative(
                dx1 = 0.0f,
                dy1 = -25.0f,
                dx2 = -17.5f,
                dy2 = -42.5f,
            )
            reflectiveQuadTo(
                x1 = 340.0f,
                y1 = 320.0f,
            )
            quadToRelative(
                dx1 = -25.0f,
                dy1 = 0.0f,
                dx2 = -42.5f,
                dy2 = 17.5f,
            )
            reflectiveQuadTo(
                x1 = 280.0f,
                y1 = 380.0f,
            )
            quadToRelative(
                dx1 = 0.0f,
                dy1 = 25.0f,
                dx2 = 17.5f,
                dy2 = 42.5f,
            )
            reflectiveQuadTo(
                x1 = 340.0f,
                y1 = 440.0f,
            )
            close()
            moveToRelative(dx = 140.0f, dy = 260.0f)
            quadToRelative(
                dx1 = 68.0f,
                dy1 = 0.0f,
                dx2 = 123.5f,
                dy2 = -38.5f,
            )
            reflectiveQuadTo(
                x1 = 684.0f,
                y1 = 560.0f,
            )
            lineToRelative(dx = -66.0f, dy = 0.0f)
            quadToRelative(
                dx1 = -22.0f,
                dy1 = 37.0f,
                dx2 = -58.5f,
                dy2 = 58.5f,
            )
            reflectiveQuadTo(
                x1 = 480.0f,
                y1 = 640.0f,
            )
            quadToRelative(
                dx1 = -43.0f,
                dy1 = 0.0f,
                dx2 = -79.5f,
                dy2 = -21.5f,
            )
            reflectiveQuadTo(
                x1 = 342.0f,
                y1 = 560.0f,
            )
            lineToRelative(dx = -66.0f, dy = 0.0f)
            quadToRelative(
                dx1 = 25.0f,
                dy1 = 63.0f,
                dx2 = 80.5f,
                dy2 = 101.5f,
            )
            reflectiveQuadTo(
                x1 = 480.0f,
                y1 = 700.0f,
            )
            close()
            moveToRelative(dx = 0.0f, dy = 180.0f)
            quadToRelative(
                dx1 = -83.0f,
                dy1 = 0.0f,
                dx2 = -156.0f,
                dy2 = -31.5f,
            )
            reflectiveQuadTo(
                x1 = 197.0f,
                y1 = 763.0f,
            )
            quadToRelative(
                dx1 = -54.0f,
                dy1 = -54.0f,
                dx2 = -85.5f,
                dy2 = -127.0f,
            )
            reflectiveQuadTo(
                x1 = 80.0f,
                y1 = 480.0f,
            )
            quadToRelative(
                dx1 = 0.0f,
                dy1 = -83.0f,
                dx2 = 31.5f,
                dy2 = -156.0f,
            )
            reflectiveQuadTo(
                x1 = 197.0f,
                y1 = 197.0f,
            )
            quadToRelative(
                dx1 = 54.0f,
                dy1 = -54.0f,
                dx2 = 127.0f,
                dy2 = -85.5f,
            )
            reflectiveQuadTo(
                x1 = 480.0f,
                y1 = 80.0f,
            )
            quadToRelative(
                dx1 = 83.0f,
                dy1 = 0.0f,
                dx2 = 156.0f,
                dy2 = 31.5f,
            )
            reflectiveQuadTo(
                x1 = 763.0f,
                y1 = 197.0f,
            )
            quadToRelative(
                dx1 = 54.0f,
                dy1 = 54.0f,
                dx2 = 85.5f,
                dy2 = 127.0f,
            )
            reflectiveQuadTo(
                x1 = 880.0f,
                y1 = 480.0f,
            )
            quadToRelative(
                dx1 = 0.0f,
                dy1 = 83.0f,
                dx2 = -31.5f,
                dy2 = 156.0f,
            )
            reflectiveQuadTo(
                x1 = 763.0f,
                y1 = 763.0f,
            )
            quadToRelative(
                dx1 = -54.0f,
                dy1 = 54.0f,
                dx2 = -127.0f,
                dy2 = 85.5f,
            )
            reflectiveQuadTo(
                x1 = 480.0f,
                y1 = 880.0f,
            )
            close()
            moveToRelative(dx = 0.0f, dy = -400.0f)
            close()
            moveToRelative(dx = 0.0f, dy = 320.0f)
            quadToRelative(
                dx1 = 134.0f,
                dy1 = 0.0f,
                dx2 = 227.0f,
                dy2 = -93.0f,
            )
            reflectiveQuadToRelative(
                dx1 = 93.0f,
                dy1 = -227.0f,
            )
            quadToRelative(
                dx1 = 0.0f,
                dy1 = -134.0f,
                dx2 = -93.0f,
                dy2 = -227.0f,
            )
            reflectiveQuadToRelative(
                dx1 = -227.0f,
                dy1 = -93.0f,
            )
            quadToRelative(
                dx1 = -134.0f,
                dy1 = 0.0f,
                dx2 = -227.0f,
                dy2 = 93.0f,
            )
            reflectiveQuadToRelative(
                dx1 = -93.0f,
                dy1 = 227.0f,
            )
            quadToRelative(
                dx1 = 0.0f,
                dy1 = 134.0f,
                dx2 = 93.0f,
                dy2 = 227.0f,
            )
            reflectiveQuadToRelative(
                dx1 = 227.0f,
                dy1 = 93.0f,
            )
            close()
        }
    }
}

@Preview(showBackground = true)
@Composable
private fun Preview() {
    Icon(imageVector = OutlinedSmileIcon, contentDescription = null)
}
