from typing import Annotated, Literal

from pydantic import StringConstraints

VendorIconName = Annotated[str, StringConstraints(pattern=r"^vendor:")]

IconName = (
    Literal[
        "agent",
        "analytics",
        "atom",
        "batch",
        "bolt",
        "book-open",
        "book-closed",
        "book-clock",
        "bug",
        "calendar",
        "chart",
        "check",
        "check-circle",
        "check-circle-filled",
        "chevron-left",
        "chevron-right",
        "circle-question",
        "clock",
        "compass",
        "confetti",
        "cube",
        "desktop",
        "document",
        "dot",
        "dots-horizontal",
        "dots-vertical",
        "empty-circle",
        "external-link",
        "globe",
        "keys",
        "lab",
        "images",
        "info",
        "lifesaver",
        "lightbulb",
        "mail",
        "map-pin",
        "maps",
        "mobile",
        "name",
        "notebook",
        "notebook-pencil",
        "page-blank",
        "phone",
        "play",
        "plus",
        "profile",
        "profile-card",
        "reload",
        "star",
        "star-filled",
        "search",
        "sparkle",
        "sparkle-double",
        "square-code",
        "square-image",
        "square-text",
        "suitcase",
        "settings-slider",
        "user",
        "wreath",
        "write",
        "write-alt",
        "write-alt2",
    ]
    | VendorIconName
)
"""Allowed icon names."""
