@file:Suppress("UnusedReceiverParameter", "HardCodedStringLiteral", "ObjectPropertyName")

package eu.gaudian.translator.view.composable

// Preview imports
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.materialIcon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
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.group
import androidx.compose.ui.graphics.vector.path
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.unit.dp

/**
 * A collection of custom ImageVectors for use as hint icons.
 */
object HintIcons

/**
 * A classic lightbulb icon, symbolizing an idea or a bright hint.
 */
val HintIcons.Lightbulb: ImageVector
    get() {
        if (lightbulb != null) {
            return lightbulb!!
        }
        lightbulb = materialIcon(name = "Hint.Lightbulb") {
            path(fill = SolidColor(Color(0xFF000000)), stroke = null) {
                moveTo(9.0f, 21.0f)
                curveToRelative(0.0f, 0.55f, 0.45f, 1.0f, 1.0f, 1.0f)
                horizontalLineToRelative(4.0f)
                curveToRelative(0.55f, 0.0f, 1.0f, -0.45f, 1.0f, -1.0f)
                verticalLineToRelative(-1.0f)
                horizontalLineTo(9.0f)
                verticalLineToRelative(1.0f)
                close()
                moveTo(12.0f, 2.0f)
                curveTo(8.14f, 2.0f, 5.0f, 5.14f, 5.0f, 9.0f)
                curveToRelative(0.0f, 2.38f, 1.19f, 4.47f, 3.0f, 5.74f)
                verticalLineTo(17.0f)
                curveToRelative(0.0f, 0.55f, 0.45f, 1.0f, 1.0f, 1.0f)
                horizontalLineToRelative(6.0f)
                curveToRelative(0.55f, 0.0f, 1.0f, -0.45f, 1.0f, -1.0f)
                verticalLineToRelative(-2.26f)
                curveToRelative(1.81f, -1.27f, 3.0f, -3.36f, 3.0f, -5.74f)
                curveToRelative(0.0f, -3.86f, -3.14f, -7.0f, -7.0f, -7.0f)
                close()
                moveTo(14.85f, 13.1f)
                lineToRelative(-0.85f, 0.6f)
                verticalLineTo(16.0f)
                horizontalLineToRelative(-4.0f)
                verticalLineToRelative(-2.3f)
                lineToRelative(-0.85f, -0.6f)
                curveTo(7.8f, 12.16f, 7.0f, 10.63f, 7.0f, 9.0f)
                curveToRelative(0.0f, -2.76f, 2.24f, -5.0f, 5.0f, -5.0f)
                reflectiveCurveToRelative(5.0f, 2.24f, 5.0f, 5.0f)
                curveToRelative(0.0f, 1.63f, -0.8f, 3.16f, -2.15f, 4.1f)
                close()
            }
        }
        return lightbulb!!
    }
private var lightbulb: ImageVector? = null

/**
 * A question mark inside a circle, ideal for a "help" or "more info" hint.
 */
val HintIcons.QuestionCircle: ImageVector
    get() {
        if (_questionCircle != null) {
            return _questionCircle!!
        }
        _questionCircle = materialIcon(name = "Hint.QuestionCircle") {
            path(fill = SolidColor(Color(0xFF000000)), stroke = null) {
                moveTo(11.0f, 18.0f)
                horizontalLineToRelative(2.0f)
                verticalLineToRelative(-2.0f)
                horizontalLineToRelative(-2.0f)
                verticalLineToRelative(2.0f)
                close()
                moveTo(12.0f, 2.0f)
                curveTo(6.48f, 2.0f, 2.0f, 6.48f, 2.0f, 12.0f)
                reflectiveCurveToRelative(4.48f, 10.0f, 10.0f, 10.0f)
                reflectiveCurveToRelative(10.0f, -4.48f, 10.0f, -10.0f)
                reflectiveCurveTo(17.52f, 2.0f, 12.0f, 2.0f)
                close()
                moveTo(12.0f, 20.0f)
                curveToRelative(-4.41f, 0.0f, -8.0f, -3.59f, -8.0f, -8.0f)
                reflectiveCurveToRelative(3.59f, -8.0f, 8.0f, -8.0f)
                reflectiveCurveToRelative(8.0f, 3.59f, 8.0f, 8.0f)
                reflectiveCurveToRelative(-3.59f, 8.0f, -8.0f, 8.0f)
                close()
                moveTo(12.0f, 6.0f)
                curveToRelative(-2.21f, 0.0f, -4.0f, 1.79f, -4.0f, 4.0f)
                horizontalLineToRelative(2.0f)
                curveToRelative(0.0f, -1.1f, 0.9f, -2.0f, 2.0f, -2.0f)
                reflectiveCurveToRelative(2.0f, 0.9f, 2.0f, 2.0f)
                curveToRelative(0.0f, 2.0f, -3.0f, 1.75f, -3.0f, 5.0f)
                horizontalLineToRelative(2.0f)
                curveToRelative(0.0f, -2.25f, 3.0f, -2.5f, 3.0f, -5.0f)
                curveToRelative(0.0f, -2.21f, -1.79f, -4.0f, -4.0f, -4.0f)
                close()
            }
        }
        return _questionCircle!!
    }
private var _questionCircle: ImageVector? = null

/**
 * A magnifying glass, suggesting to the user to look closer or find a clue.
 */
val HintIcons.MagnifyingGlass: ImageVector
    get() {
        if (magnifyingGlass != null) {
            return magnifyingGlass!!
        }
        magnifyingGlass = materialIcon(name = "Hint.MagnifyingGlass") {
            path(fill = SolidColor(Color(0xFF000000)), stroke = null) {
                moveTo(15.5f, 14.0f)
                horizontalLineToRelative(-0.79f)
                lineToRelative(-0.28f, -0.27f)
                arcTo(6.471f, 6.471f, 0.0f, isMoreThanHalf = false, isPositiveArc = false, 16.0f, 9.5f)
                curveTo(16.0f, 5.91f, 13.09f, 3.0f, 9.5f, 3.0f)
                reflectiveCurveTo(3.0f, 5.91f, 3.0f, 9.5f)
                reflectiveCurveTo(5.91f, 16.0f, 9.5f, 16.0f)
                curveToRelative(1.61f, 0.0f, 3.09f, -0.59f, 4.23f, -1.57f)
                lineToRelative(0.27f, 0.28f)
                verticalLineToRelative(0.79f)
                lineToRelative(5.0f, 4.99f)
                lineTo(20.49f, 19.0f)
                lineToRelative(-4.99f, -5.0f)
                close()
                moveTo(9.5f, 14.0f)
                curveTo(7.01f, 14.0f, 5.0f, 11.99f, 5.0f, 9.5f)
                reflectiveCurveTo(7.01f, 5.0f, 9.5f, 5.0f)
                reflectiveCurveTo(14.0f, 7.01f, 14.0f, 9.5f)
                reflectiveCurveTo(11.99f, 14.0f, 9.5f, 14.0f)
                close()
            }
        }
        return magnifyingGlass!!
    }
private var magnifyingGlass: ImageVector? = null

/**
 * A key icon, representing the unlocking of a solution or a secret.
 */
val HintIcons.Key: ImageVector
    get() {
        if (key != null) {
            return key!!
        }
        key = materialIcon(name = "Hint.Key") {
            path(fill = SolidColor(Color(0xFF000000)), stroke = null) {
                moveTo(12.65f, 10.0f)
                curveTo(11.83f, 7.67f, 9.61f, 6.0f, 7.0f, 6.0f)
                curveToRelative(-3.31f, 0.0f, -6.0f, 2.69f, -6.0f, 6.0f)
                reflectiveCurveToRelative(2.69f, 6.0f, 6.0f, 6.0f)
                curveToRelative(2.61f, 0.0f, 4.83f, -1.67f, 5.65f, -4.0f)
                horizontalLineTo(17.0f)
                verticalLineToRelative(4.0f)
                horizontalLineToRelative(4.0f)
                verticalLineToRelative(-4.0f)
                horizontalLineToRelative(2.0f)
                verticalLineToRelative(-4.0f)
                horizontalLineTo(12.65f)
                close()
                moveTo(7.0f, 14.0f)
                curveToRelative(-1.1f, 0.0f, -2.0f, -0.9f, -2.0f, -2.0f)
                reflectiveCurveToRelative(0.9f, -2.0f, 2.0f, -2.0f)
                reflectiveCurveToRelative(2.0f, 0.9f, 2.0f, 2.0f)
                reflectiveCurveToRelative(-0.9f, 2.0f, -2.0f, 2.0f)
                close()
            }
        }
        return key!!
    }
private var key: ImageVector? = null

/**
 * An information 'i' in a circle, a universal symbol for information.
 */
val HintIcons.Info: ImageVector
    get() {
        if (_info != null) {
            return _info!!
        }
        _info = materialIcon(name = "Hint.Info") {
            path(fill = SolidColor(Color(0xFF000000)), stroke = null) {
                moveTo(11.0f, 7.0f)
                horizontalLineToRelative(2.0f)
                verticalLineToRelative(2.0f)
                horizontalLineToRelative(-2.0f)
                close()
                moveTo(11.0f, 11.0f)
                horizontalLineToRelative(2.0f)
                verticalLineToRelative(6.0f)
                horizontalLineToRelative(-2.0f)
                close()
                moveTo(12.0f, 2.0f)
                curveTo(6.48f, 2.0f, 2.0f, 6.48f, 2.0f, 12.0f)
                reflectiveCurveToRelative(4.48f, 10.0f, 10.0f, 10.0f)
                reflectiveCurveToRelative(10.0f, -4.48f, 10.0f, -10.0f)
                reflectiveCurveTo(17.52f, 2.0f, 12.0f, 2.0f)
                close()
                moveTo(12.0f, 20.0f)
                curveToRelative(-4.41f, 0.0f, -8.0f, -3.59f, -8.0f, -8.0f)
                reflectiveCurveToRelative(3.59f, -8.0f, 8.0f, -8.0f)
                reflectiveCurveToRelative(8.0f, 3.59f, 8.0f, 8.0f)
                reflectiveCurveToRelative(-3.59f, 8.0f, -8.0f, 8.0f)
                close()
            }
        }
        return _info!!
    }
private var _info: ImageVector? = null

/**
 * A puzzle piece, indicating a piece of the solution or a helpful clue.
 */
val HintIcons.Puzzle: ImageVector
    get() {
        if (_puzzle != null) {
            return _puzzle!!
        }
        _puzzle = materialIcon(name = "Hint.Puzzle") {
            path(fill = SolidColor(Color(0xFF000000)), stroke = null) {
                moveTo(640f, 661.3f)
                arcToRelative(106.7f, 106.7f, 0f, isMoreThanHalf = false, isPositiveArc = true, -106.7f, 106.7f)
                arcToRelative(106.7f, 106.7f, 0f, isMoreThanHalf = false, isPositiveArc = true, -106.7f, -106.7f)
                verticalLineToRelative(-74.7f)
                arcToRelative(32f, 32f, 0f, isMoreThanHalf = false, isPositiveArc = true, 32f, -32f)
                arcToRelative(32f, 32f, 0f, isMoreThanHalf = false, isPositiveArc = true, 32f, 32f)
                verticalLineToRelative(74.7f)
                arcToRelative(42.7f, 42.7f, 0f, isMoreThanHalf = false, isPositiveArc = false, 42.7f, 42.7f)
                arcToRelative(42.7f, 42.7f, 0f, isMoreThanHalf = false, isPositiveArc = false, 42.7f, -42.7f)
                verticalLineToRelative(-154f)
                curveToRelative(-37.1f, -11.9f, -64f, -43.5f, -64f, -80.6f)
                curveToRelative(0f, -46.9f, 42.7f, -85.3f, 96f, -85.3f)
                reflectiveCurveToRelative(96f, 38.4f, 96f, 85.3f)
                curveToRelative(0f, 37.1f, -26.9f, 68.7f, -64f, 80.6f)
                verticalLineToRelative(154f)
                moveTo(352f, 341.3f)
                curveToRelative(53.3f, 0f, 96f, 38.4f, 96f, 85.3f)
                curveToRelative(0f, 37.1f, -26.9f, 68.7f, -64f, 80.6f)
                verticalLineToRelative(228.7f)
                arcToRelative(138.7f, 138.7f, 0f, isMoreThanHalf = false, isPositiveArc = false, 138.7f, 138.7f)
                arcToRelative(138.7f, 138.7f, 0f, isMoreThanHalf = false, isPositiveArc = false, 138.7f, -138.7f)
                verticalLineToRelative(-149.3f)
                arcToRelative(32f, 32f, 0f, isMoreThanHalf = false, isPositiveArc = true, 32f, -32f)
                arcToRelative(32f, 32f, 0f, isMoreThanHalf = false, isPositiveArc = true, 32f, 32f)
                verticalLineToRelative(149.3f)
                arcTo(202.7f, 202.7f, 0f, isMoreThanHalf = false, isPositiveArc = true, 522.7f, 938.7f)
                arcToRelative(202.7f, 202.7f, 0f, isMoreThanHalf = false, isPositiveArc = true, -202.7f, -202.7f)
                verticalLineToRelative(-228.7f)
                curveTo(282.9f, 495.4f, 256f, 463.8f, 256f, 426.7f)
                curveToRelative(0f, -46.9f, 42.7f, -85.3f, 96f, -85.3f)
                moveToRelative(77.2f, -79.8f)
                lineToRelative(-18.3f, 62.3f)
                curveToRelative(-17.5f, -9.4f, -37.5f, -14.5f, -58.9f, -14.5f)
                curveToRelative(-38.8f, 0f, -73.4f, 17.1f, -94.7f, 43.5f)
                lineToRelative(-51.2f, -38.4f)
                curveTo(233f, 280.3f, 273.5f, 256f, 320f, 247.9f)
                verticalLineToRelative(-2.6f)
                arcTo(160f, 160f, 0f, isMoreThanHalf = false, isPositiveArc = true, 480f, 85.3f)
                arcTo(160f, 160f, 0f, isMoreThanHalf = false, isPositiveArc = true, 640f, 245.3f)
                verticalLineToRelative(2.6f)
                curveToRelative(46.5f, 8.1f, 87f, 32.4f, 113.9f, 66.6f)
                lineToRelative(-51.2f, 38.4f)
                curveToRelative(-21.3f, -26.5f, -55.9f, -43.5f, -94.7f, -43.5f)
                curveToRelative(-21.3f, 0f, -41.4f, 5.1f, -58.9f, 14.5f)
                lineToRelative(-18.3f, -62.3f)
                curveToRelative(14.1f, -5.5f, 29.4f, -11.1f, 45.2f, -13.7f)
                verticalLineToRelative(-2.6f)
                curveToRelative(0f, -53.3f, -42.7f, -96f, -96f, -96f)
                reflectiveCurveTo(384f, 192f, 384f, 245.3f)
                verticalLineToRelative(2.6f)
                curveToRelative(15.8f, 2.6f, 31.1f, 8.1f, 45.2f, 13.7f)
                moveToRelative(178.8f, 133.1f)
                curveToRelative(-23.5f, 0f, -42.7f, 14.5f, -42.7f, 32f)
                reflectiveCurveToRelative(19.2f, 32f, 42.7f, 32f)
                reflectiveCurveToRelative(42.7f, -14.5f, 42.7f, -32f)
                reflectiveCurveToRelative(-19.2f, -32f, -42.7f, -32f)
                moveToRelative(-256f, 0f)
                curveToRelative(-23.5f, 0f, -42.7f, 14.5f, -42.7f, 32f)
                reflectiveCurveToRelative(19.2f, 32f, 42.7f, 32f)
                reflectiveCurveToRelative(42.7f, -14.5f, 42.7f, -32f)
                reflectiveCurveToRelative(-19.2f, -32f, -42.7f, -32f)
                close()
            }
        }
        return _puzzle!!
    }
private var _puzzle: ImageVector? = null

/**
 * A magic wand with sparkles, for a special or "magical" hint.
 */
val HintIcons.MagicWand: ImageVector
    get() {
        if (_magicWand != null) {
            return _magicWand!!
        }
        _magicWand = materialIcon(name = "Hint.MagicWand") {
            path(fill = SolidColor(Color(0xFF000000)), stroke = null) {
                moveTo(20.0f, 7.0f)
                lineToRelative(-1.41f, -1.41f)
                lineToRelative(-3.09f, 3.09f)
                lineToRelative(-3.09f, -3.09f)
                lineTo(11.0f, 7.0f)
                lineToRelative(3.09f, 3.09f)
                lineToRelative(-3.09f, 3.09f)
                lineToRelative(1.41f, 1.41f)
                lineToRelative(3.09f, -3.09f)
                lineToRelative(3.09f, 3.09f)
                lineToRelative(1.41f, -1.41f)
                lineToRelative(-3.09f, -3.09f)
                close()
                moveTo(8.0f, 4.0f)
                curveToRelative(-0.55f, 0.0f, -1.0f, 0.45f, -1.0f, 1.0f)
                reflectiveCurveToRelative(0.45f, 1.0f, 1.0f, 1.0f)
                reflectiveCurveToRelative(1.0f, -0.45f, 1.0f, -1.0f)
                reflectiveCurveToRelative(-0.45f, -1.0f, -1.0f, -1.0f)
                close()
                moveTo(4.0f, 8.0f)
                curveToRelative(-0.55f, 0.0f, -1.0f, 0.45f, -1.0f, 1.0f)
                reflectiveCurveToRelative(0.45f, 1.0f, 1.0f, 1.0f)
                reflectiveCurveToRelative(1.0f, -0.45f, 1.0f, -1.0f)
                reflectiveCurveToRelative(-0.45f, -1.0f, -1.0f, -1.0f)
                close()
                moveTo(4.0f, 16.0f)
                curveToRelative(-0.55f, 0.0f, -1.0f, 0.45f, -1.0f, 1.0f)
                reflectiveCurveToRelative(0.45f, 1.0f, 1.0f, 1.0f)
                reflectiveCurveToRelative(1.0f, -0.45f, 1.0f, -1.0f)
                reflectiveCurveToRelative(-0.45f, -1.0f, -1.0f, -1.0f)
                close()
                moveTo(16.0f, 12.0f)
                curveToRelative(-0.55f, 0.0f, -1.0f, 0.45f, -1.0f, 1.0f)
                reflectiveCurveToRelative(0.45f, 1.0f, 1.0f, 1.0f)
                reflectiveCurveToRelative(1.0f, -0.45f, 1.0f, -1.0f)
                reflectiveCurveToRelative(-0.45f, -1.0f, -1.0f, -1.0f)
                close()
            }
        }
        return _magicWand!!
    }
private var _magicWand: ImageVector? = null

/**
 * A compass, to provide guidance or point the user in the right direction.
 */
val HintIcons.Compass: ImageVector
    get() {
        if (_compass != null) {
            return _compass!!
        }
        _compass = materialIcon(name = "Hint.Compass") {
            path(fill = SolidColor(Color(0xFF000000)), stroke = null) {
                moveTo(12.0f, 12.0f)
                curveToRelative(-1.1f, 0.0f, -2.0f, -0.9f, -2.0f, -2.0f)
                reflectiveCurveToRelative(0.9f, -2.0f, 2.0f, -2.0f)
                reflectiveCurveToRelative(2.0f, 0.9f, 2.0f, 2.0f)
                reflectiveCurveToRelative(-0.9f, 2.0f, -2.0f, 2.0f)
                close()
                moveTo(12.0f, 2.0f)
                curveTo(6.48f, 2.0f, 2.0f, 6.48f, 2.0f, 12.0f)
                reflectiveCurveToRelative(4.48f, 10.0f, 10.0f, 10.0f)
                reflectiveCurveToRelative(10.0f, -4.48f, 10.0f, -10.0f)
                reflectiveCurveTo(17.52f, 2.0f, 12.0f, 2.0f)
                close()
                moveTo(12.0f, 20.0f)
                curveToRelative(-4.42f, 0.0f, -8.0f, -3.58f, -8.0f, -8.0f)
                reflectiveCurveToRelative(3.58f, -8.0f, 8.0f, -8.0f)
                reflectiveCurveToRelative(8.0f, 3.58f, 8.0f, 8.0f)
                reflectiveCurveToRelative(-3.58f, 8.0f, -8.0f, 8.0f)
                close()
                moveTo(9.12f, 16.33f)
                lineToRelative(1.83f, -3.87f)
                lineToRelative(3.87f, -1.83f)
                lineToRelative(-1.83f, 3.87f)
                lineToRelative(-3.87f, 1.83f)
                close()
            }
        }
        return _compass!!
    }
private var _compass: ImageVector? = null

/**
 * A pointing hand, useful for a "tap here" or "look at this" type of hint.
 */
val HintIcons.PointingHand: ImageVector
    get() {
        if (_pointingHand != null) {
            return _pointingHand!!
        }
        _pointingHand = materialIcon(name = "Hint.PointingHand") {
            path(fill = SolidColor(Color(0xFF000000)), stroke = null) {
                moveTo(9.0f, 11.3f)
                lineToRelative(2.43f, 2.43f)
                curveToRelative(0.2f, 0.2f, 0.45f, 0.3f, 0.71f, 0.3f)
                curveToRelative(0.26f, 0.0f, 0.51f, -0.1f, 0.71f, -0.29f)
                lineTo(19.0f, 7.5f)
                verticalLineTo(11.0f)
                horizontalLineToRelative(2.0f)
                verticalLineTo(4.0f)
                horizontalLineToRelative(-7.0f)
                verticalLineToRelative(2.0f)
                horizontalLineToRelative(3.5f)
                lineToRelative(-5.29f, 5.29f)
                lineTo(11.3f, 9.0f)
                horizontalLineTo(9.0f)
                close()
                moveTo(3.0f, 3.0f)
                verticalLineToRelative(18.0f)
                horizontalLineToRelative(18.0f)
                verticalLineTo(3.0f)
                horizontalLineTo(3.0f)
                close()
                moveTo(19.0f, 19.0f)
                horizontalLineTo(5.0f)
                verticalLineTo(5.0f)
                horizontalLineToRelative(14.0f)
                verticalLineToRelative(14.0f)
                close()
            }
        }
        return _pointingHand!!
    }
private var _pointingHand: ImageVector? = null

/**
 * An old scroll, representing a hidden clue, a story, or detailed information.
 */
val HintIcons.Scroll: ImageVector
    get() {
        if (_scroll != null) {
            return _scroll!!
        }
        _scroll = materialIcon(name = "Hint.Scroll") {
            path(fill = SolidColor(Color(0xFF000000)), stroke = null) {
                moveTo(14.0f, 2.0f)
                horizontalLineTo(6.0f)
                curveToRelative(-1.1f, 0.0f, -1.99f, 0.9f, -1.99f, 2.0f)
                lineTo(4.0f, 20.0f)
                curveToRelative(0.0f, 1.1f, 0.89f, 2.0f, 1.99f, 2.0f)
                horizontalLineTo(18.0f)
                curveToRelative(1.1f, 0.0f, 2.0f, -0.9f, 2.0f, -2.0f)
                verticalLineTo(8.0f)
                lineToRelative(-6.0f, -6.0f)
                close()
                moveTo(16.0f, 18.0f)
                horizontalLineTo(8.0f)
                verticalLineToRelative(-2.0f)
                horizontalLineToRelative(8.0f)
                verticalLineToRelative(2.0f)
                close()
                moveTo(16.0f, 14.0f)
                horizontalLineTo(8.0f)
                verticalLineToRelative(-2.0f)
                horizontalLineToRelative(8.0f)
                verticalLineToRelative(2.0f)
                close()
                moveTo(13.0f, 9.0f)
                verticalLineTo(3.5f)
                lineTo(18.5f, 9.0f)
                horizontalLineTo(13.0f)
                close()
            }
        }
        return _scroll!!


    }
private var _scroll: ImageVector? = null

// ----- Preview of all HintIcons -----

@Composable
private fun HintIconRow(label: String, vector: ImageVector) {
    Row(modifier = Modifier.fillMaxWidth().padding(vertical = 8.dp), horizontalArrangement = Arrangement.spacedBy(16.dp)) {
        androidx.compose.material3.Icon(
            painter = rememberVectorPainter(image = vector),
            contentDescription = label,
            modifier = Modifier.size(40.dp),
            tint = MaterialTheme.colorScheme.primary
        )
        Text(text = label, style = MaterialTheme.typography.bodyLarge)
    }
}

@eu.gaudian.translator.ui.theme.ThemePreviews
@Composable
fun AllHintIconsPreview() {
    MaterialTheme {
        Surface(color = MaterialTheme.colorScheme.background) {
            Column(
                modifier = Modifier
                    .fillMaxWidth()
                    .padding(16.dp)
                    .verticalScroll(rememberScrollState()),
                verticalArrangement = Arrangement.spacedBy(8.dp)
            ) {
                Text("HintIcons preview", style = MaterialTheme.typography.titleMedium)
                Spacer(Modifier.height(8.dp))
                HintIconRow("Lightbulb", HintIcons.Lightbulb)
                HintIconRow("QuestionCircle", HintIcons.QuestionCircle)
                HintIconRow("MagnifyingGlass", HintIcons.MagnifyingGlass)
                HintIconRow("Key", HintIcons.Key)
                HintIconRow("Info", HintIcons.Info)
                HintIconRow("Puzzle", HintIcons.Puzzle)
                HintIconRow("MagicWand", HintIcons.MagicWand)
                HintIconRow("Compass", HintIcons.Compass)
                HintIconRow("PointingHand", HintIcons.PointingHand)
                HintIconRow("Scroll", HintIcons.Scroll)
            }
        }
    }
}

val HintIcons.Clippy: ImageVector
    get() {
        if (_Clippy != null) {
            return _Clippy!!
        }
        _Clippy = ImageVector.Builder(
            name = "Clippy",
            defaultWidth = 1024.dp,
            defaultHeight = 1024.dp,
            viewportWidth = 1024f,
            viewportHeight = 1024f
        ).apply {
            path(fill = SolidColor(Color.Black)) {
                moveTo(640f, 661.3f)
                arcToRelative(106.7f, 106.7f, 0f, isMoreThanHalf = false, isPositiveArc = true, -106.7f, 106.7f)
                arcToRelative(106.7f, 106.7f, 0f, isMoreThanHalf = false, isPositiveArc = true, -106.7f, -106.7f)
                verticalLineToRelative(-74.7f)
                arcToRelative(32f, 32f, 0f, isMoreThanHalf = false, isPositiveArc = true, 32f, -32f)
                arcToRelative(32f, 32f, 0f, isMoreThanHalf = false, isPositiveArc = true, 32f, 32f)
                verticalLineToRelative(74.7f)
                arcToRelative(42.7f, 42.7f, 0f, isMoreThanHalf = false, isPositiveArc = false, 42.7f, 42.7f)
                arcToRelative(42.7f, 42.7f, 0f, isMoreThanHalf = false, isPositiveArc = false, 42.7f, -42.7f)
                verticalLineToRelative(-154f)
                curveToRelative(-37.1f, -11.9f, -64f, -43.5f, -64f, -80.6f)
                curveToRelative(0f, -46.9f, 42.7f, -85.3f, 96f, -85.3f)
                reflectiveCurveToRelative(96f, 38.4f, 96f, 85.3f)
                curveToRelative(0f, 37.1f, -26.9f, 68.7f, -64f, 80.6f)
                verticalLineToRelative(154f)
                moveTo(352f, 341.3f)
                curveToRelative(53.3f, 0f, 96f, 38.4f, 96f, 85.3f)
                curveToRelative(0f, 37.1f, -26.9f, 68.7f, -64f, 80.6f)
                verticalLineToRelative(228.7f)
                arcToRelative(138.7f, 138.7f, 0f, isMoreThanHalf = false, isPositiveArc = false, 138.7f, 138.7f)
                arcToRelative(138.7f, 138.7f, 0f, isMoreThanHalf = false, isPositiveArc = false, 138.7f, -138.7f)
                verticalLineToRelative(-149.3f)
                arcToRelative(32f, 32f, 0f, isMoreThanHalf = false, isPositiveArc = true, 32f, -32f)
                arcToRelative(32f, 32f, 0f, isMoreThanHalf = false, isPositiveArc = true, 32f, 32f)
                verticalLineToRelative(149.3f)
                arcTo(202.7f, 202.7f, 0f, isMoreThanHalf = false, isPositiveArc = true, 522.7f, 938.7f)
                arcToRelative(202.7f, 202.7f, 0f, isMoreThanHalf = false, isPositiveArc = true, -202.7f, -202.7f)
                verticalLineToRelative(-228.7f)
                curveTo(282.9f, 495.4f, 256f, 463.8f, 256f, 426.7f)
                curveToRelative(0f, -46.9f, 42.7f, -85.3f, 96f, -85.3f)
                moveToRelative(77.2f, -79.8f)
                lineToRelative(-18.3f, 62.3f)
                curveToRelative(-17.5f, -9.4f, -37.5f, -14.5f, -58.9f, -14.5f)
                curveToRelative(-38.8f, 0f, -73.4f, 17.1f, -94.7f, 43.5f)
                lineToRelative(-51.2f, -38.4f)
                curveTo(233f, 280.3f, 273.5f, 256f, 320f, 247.9f)
                verticalLineToRelative(-2.6f)
                arcTo(160f, 160f, 0f, isMoreThanHalf = false, isPositiveArc = true, 480f, 85.3f)
                arcTo(160f, 160f, 0f, isMoreThanHalf = false, isPositiveArc = true, 640f, 245.3f)
                verticalLineToRelative(2.6f)
                curveToRelative(46.5f, 8.1f, 87f, 32.4f, 113.9f, 66.6f)
                lineToRelative(-51.2f, 38.4f)
                curveToRelative(-21.3f, -26.5f, -55.9f, -43.5f, -94.7f, -43.5f)
                curveToRelative(-21.3f, 0f, -41.4f, 5.1f, -58.9f, 14.5f)
                lineToRelative(-18.3f, -62.3f)
                curveToRelative(14.1f, -5.5f, 29.4f, -11.1f, 45.2f, -13.7f)
                verticalLineToRelative(-2.6f)
                curveToRelative(0f, -53.3f, -42.7f, -96f, -96f, -96f)
                reflectiveCurveTo(384f, 192f, 384f, 245.3f)
                verticalLineToRelative(2.6f)
                curveToRelative(15.8f, 2.6f, 31.1f, 8.1f, 45.2f, 13.7f)
                moveToRelative(178.8f, 133.1f)
                curveToRelative(-23.5f, 0f, -42.7f, 14.5f, -42.7f, 32f)
                reflectiveCurveToRelative(19.2f, 32f, 42.7f, 32f)
                reflectiveCurveToRelative(42.7f, -14.5f, 42.7f, -32f)
                reflectiveCurveToRelative(-19.2f, -32f, -42.7f, -32f)
                moveToRelative(-256f, 0f)
                curveToRelative(-23.5f, 0f, -42.7f, 14.5f, -42.7f, 32f)
                reflectiveCurveToRelative(19.2f, 32f, 42.7f, 32f)
                reflectiveCurveToRelative(42.7f, -14.5f, 42.7f, -32f)
                reflectiveCurveToRelative(-19.2f, -32f, -42.7f, -32f)
                close()
            }
        }.build()

        return _Clippy!!
    }

private var _Clippy: ImageVector? = null

private const val HELP85_SCALE: Float = 0.70f

val HintIcons.Help85: ImageVector
    get() {
        if (_Help85 != null) {
            return _Help85!!
        }
        _Help85 = ImageVector.Builder(
            name = "Help85",
            defaultWidth = 1024.dp,
            defaultHeight = 1024.dp,
            viewportWidth = 1024f,
            viewportHeight = 1024f
        ).apply {
            group(
                pivotX = 512f,
                pivotY = 512f,
                scaleX = HELP85_SCALE,
                scaleY = HELP85_SCALE
            ) {
                path(fill = SolidColor(Color.Black)) {
                    moveTo(512f, 993.9f)
                    curveTo(245.9f, 993.9f, 30.1f, 778.1f, 30.1f, 512f)
                    reflectiveCurveTo(245.9f, 30.1f, 512f, 30.1f)
                    reflectiveCurveToRelative(481.9f, 215.7f, 481.9f, 481.9f)
                    reflectiveCurveToRelative(-215.7f, 481.9f, -481.9f, 481.9f)
                    close()
                    moveTo(512f, 933.6f)
                    curveToRelative(232.9f, 0f, 421.6f, -188.8f, 421.6f, -421.6f)
                    reflectiveCurveTo(744.9f, 90.4f, 512f, 90.4f)
                    reflectiveCurveTo(90.4f, 279.1f, 90.4f, 512f)
                    reflectiveCurveToRelative(188.8f, 421.6f, 421.6f, 421.6f)
                    close()
                }
                path(fill = SolidColor(Color.Black)) {
                    moveTo(510.1f, 778.5f)
                    arcToRelative(43.8f, 43.8f, 0f, isMoreThanHalf = true, isPositiveArc = true, 0f, -87.5f)
                    arcToRelative(43.8f, 43.8f, 0f, isMoreThanHalf = false, isPositiveArc = true, 0f, 87.5f)
                    close()
                    moveTo(391.8f, 433.8f)
                    arcToRelative(30.7f, 30.7f, 0f, isMoreThanHalf = false, isPositiveArc = true, -30.2f, -34.4f)
                    curveToRelative(2f, -17f, 5.2f, -30.9f, 9.5f, -41.7f)
                    arcToRelative(124.3f, 124.3f, 0f, isMoreThanHalf = false, isPositiveArc = true, 33.4f, -46.6f)
                    arcToRelative(149f, 149f, 0f, isMoreThanHalf = false, isPositiveArc = true, 51.1f, -30.2f)
                    arcTo(180.6f, 180.6f, 0f, isMoreThanHalf = false, isPositiveArc = true, 515.1f, 271.1f)
                    curveToRelative(42.2f, 0f, 77.3f, 12.4f, 105.3f, 37.3f)
                    curveToRelative(28.1f, 24.8f, 42.1f, 57.8f, 42.1f, 99.1f)
                    curveToRelative(0f, 18.6f, -3.6f, 35.4f, -10.8f, 50.4f)
                    curveToRelative(-7.2f, 15.1f, -22.5f, 33.9f, -45.9f, 56.4f)
                    curveToRelative(-23.5f, 22.5f, -38.9f, 38.5f, -46.6f, 48f)
                    arcToRelative(98.2f, 98.2f, 0f, isMoreThanHalf = false, isPositiveArc = false, -17.3f, 34.1f)
                    curveToRelative(-2.1f, 7f, -3.6f, 15.2f, -4.4f, 24.6f)
                    curveToRelative(-1.4f, 16f, -14.3f, 28.6f, -30.3f, 28.6f)
                    arcToRelative(30.7f, 30.7f, 0f, isMoreThanHalf = false, isPositiveArc = true, -30.3f, -33.6f)
                    curveToRelative(1.1f, -11f, 2.7f, -20.5f, 4.9f, -28.6f)
                    curveToRelative(4.1f, -15.5f, 10.4f, -29.1f, 18.8f, -40.7f)
                    curveToRelative(8.3f, -11.6f, 23.4f, -28.7f, 45.2f, -51.2f)
                    curveToRelative(21.8f, -22.5f, 35.8f, -38.9f, 42.2f, -49f)
                    curveToRelative(6.2f, -10.2f, 12.7f, -26.8f, 12.7f, -47f)
                    reflectiveCurveToRelative(-10.6f, -36.6f, -24.9f, -52.1f)
                    curveToRelative(-14.4f, -15.5f, -35.3f, -23.3f, -62.6f, -23.3f)
                    curveToRelative(-53.4f, 0f, -83.7f, 27.5f, -90.8f, 82.5f)
                    curveToRelative(-2f, 15.5f, -14.6f, 27.4f, -30.2f, 27.4f)
                    horizontalLineToRelative(-0.1f)
                    close()
                }
            }
        }.build()

        return _Help85!!
    }


@Suppress("ObjectPropertyName")
private var _Help85: ImageVector? = null