{
  "project": "lāska.ai · design ui inventory",
  "version": "0.1.0",
  "count": 38,
  "total": 38,
  "categories": [
    "ai",
    "buttons",
    "chat",
    "feedback",
    "inputs",
    "layout",
    "matching",
    "navigation",
    "profile",
    "subscription",
    "support"
  ],
  "components": [
    {
      "name": "LButton",
      "category": "buttons",
      "source": "src/components/laska/Button.tsx",
      "importPath": "@/components/laska/Button",
      "description": "Hlavní tlačítko aplikace s emocionálními variantami.",
      "props": [
        {
          "name": "variant",
          "type": "\"heart\" | \"primary\" | \"outline\" | \"ghost\" | \"secondary\" | \"dark\"",
          "default": "\"primary\""
        },
        {
          "name": "size",
          "type": "\"sm\" | \"md\" | \"lg\" | \"block\"",
          "default": "\"md\""
        },
        {
          "name": "children",
          "type": "ReactNode",
          "required": true
        },
        {
          "name": "onClick",
          "type": "() => void"
        },
        {
          "name": "disabled",
          "type": "boolean"
        }
      ]
    },
    {
      "name": "SocialButton",
      "category": "buttons",
      "source": "src/components/laska/Primitives.tsx",
      "importPath": "@/components/laska/Primitives",
      "description": "Sociální přihlášení (Google / Facebook / Apple).",
      "props": [
        {
          "name": "provider",
          "type": "\"google\" | \"facebook\" | \"apple\"",
          "required": true
        },
        {
          "name": "children",
          "type": "ReactNode",
          "required": true
        },
        {
          "name": "onClick",
          "type": "() => void"
        }
      ]
    },
    {
      "name": "PaymentButton",
      "category": "buttons",
      "source": "src/components/laska/Primitives.tsx",
      "importPath": "@/components/laska/Primitives",
      "description": "Apple Pay / Google Pay tlačítko.",
      "props": [
        {
          "name": "provider",
          "type": "\"apple-pay\" | \"google-pay\"",
          "required": true
        },
        {
          "name": "onClick",
          "type": "() => void"
        }
      ]
    },
    {
      "name": "TextField",
      "category": "inputs",
      "source": "src/components/laska/Inputs.tsx",
      "importPath": "@/components/laska/Inputs",
      "description": "Textové pole s labelem, helper textem, chybou a počítadlem znaků.",
      "props": [
        {
          "name": "label",
          "type": "string"
        },
        {
          "name": "helper",
          "type": "string"
        },
        {
          "name": "error",
          "type": "string"
        },
        {
          "name": "optional",
          "type": "boolean"
        },
        {
          "name": "counter",
          "type": "boolean"
        },
        {
          "name": "maxLength",
          "type": "number"
        },
        {
          "name": "placeholder",
          "type": "string"
        },
        {
          "name": "disabled",
          "type": "boolean"
        }
      ]
    },
    {
      "name": "TextArea",
      "category": "inputs",
      "source": "src/components/laska/Inputs.tsx",
      "importPath": "@/components/laska/Inputs",
      "description": "Víceřádkové textové pole.",
      "props": [
        {
          "name": "label",
          "type": "string"
        },
        {
          "name": "helper",
          "type": "string"
        },
        {
          "name": "error",
          "type": "string"
        },
        {
          "name": "maxLength",
          "type": "number"
        }
      ]
    },
    {
      "name": "PasswordField",
      "category": "inputs",
      "source": "src/components/laska/Primitives.tsx",
      "importPath": "@/components/laska/Primitives",
      "description": "Pole pro heslo s přepínáním viditelnosti.",
      "props": [
        {
          "name": "label",
          "type": "string"
        },
        {
          "name": "placeholder",
          "type": "string"
        },
        {
          "name": "error",
          "type": "string"
        }
      ]
    },
    {
      "name": "OTPField",
      "category": "inputs",
      "source": "src/components/laska/Inputs.tsx",
      "importPath": "@/components/laska/Inputs",
      "description": "Pole pro jednorázový kód.",
      "props": [
        {
          "name": "length",
          "type": "number",
          "default": "6"
        }
      ]
    },
    {
      "name": "SelectField",
      "category": "inputs",
      "source": "src/components/laska/Primitives.tsx",
      "importPath": "@/components/laska/Primitives",
      "description": "Dropdown výběr.",
      "props": [
        {
          "name": "label",
          "type": "string"
        },
        {
          "name": "options",
          "type": "{ value: string; label: string }[]",
          "required": true
        },
        {
          "name": "value",
          "type": "string"
        },
        {
          "name": "onChange",
          "type": "(v: string) => void"
        }
      ]
    },
    {
      "name": "RadioGroup",
      "category": "inputs",
      "source": "src/components/laska/Primitives.tsx",
      "importPath": "@/components/laska/Primitives",
      "description": "Skupina radio buttonů.",
      "props": [
        {
          "name": "value",
          "type": "T",
          "required": true
        },
        {
          "name": "onChange",
          "type": "(v: T) => void",
          "required": true
        },
        {
          "name": "options",
          "type": "{ value: T; label: string }[]",
          "required": true
        }
      ]
    },
    {
      "name": "ToggleSwitch",
      "category": "inputs",
      "source": "src/components/laska/Inputs.tsx",
      "importPath": "@/components/laska/Inputs",
      "description": "Přepínač s labelem a popisem.",
      "props": [
        {
          "name": "label",
          "type": "string",
          "required": true
        },
        {
          "name": "description",
          "type": "string"
        },
        {
          "name": "checked",
          "type": "boolean"
        },
        {
          "name": "onChange",
          "type": "(v: boolean) => void"
        }
      ]
    },
    {
      "name": "SegmentedControl",
      "category": "inputs",
      "source": "src/components/laska/Inputs.tsx",
      "importPath": "@/components/laska/Inputs",
      "description": "Segmentovaný výběr 2–3 možností.",
      "props": [
        {
          "name": "value",
          "type": "T",
          "required": true
        },
        {
          "name": "onChange",
          "type": "(v: T) => void",
          "required": true
        },
        {
          "name": "options",
          "type": "{ value: T; label: string }[]",
          "required": true
        }
      ]
    },
    {
      "name": "FileUpload",
      "category": "inputs",
      "source": "src/components/laska/Primitives.tsx",
      "importPath": "@/components/laska/Primitives",
      "description": "Nahrání souboru se stavy idle/uploading/success/error.",
      "props": [
        {
          "name": "state",
          "type": "\"idle\" | \"uploading\" | \"success\" | \"error\"",
          "default": "\"idle\""
        },
        {
          "name": "hint",
          "type": "string"
        },
        {
          "name": "onChange",
          "type": "(files: FileList | null) => void"
        }
      ]
    },
    {
      "name": "Chip",
      "category": "inputs",
      "source": "src/components/laska/Inputs.tsx",
      "importPath": "@/components/laska/Inputs",
      "description": "Chip pro výběr zájmů, hodnot a vlastností.",
      "props": [
        {
          "name": "children",
          "type": "ReactNode",
          "required": true
        },
        {
          "name": "active",
          "type": "boolean"
        },
        {
          "name": "tone",
          "type": "\"interest\" | \"neutral\" | \"trait\" | \"value\"",
          "default": "\"neutral\""
        },
        {
          "name": "onClick",
          "type": "() => void"
        }
      ]
    },
    {
      "name": "TopAppBar",
      "category": "navigation",
      "source": "src/components/laska/Navigation.tsx",
      "importPath": "@/components/laska/Navigation",
      "description": "Horní lišta s variantami default/centered/hero.",
      "props": [
        {
          "name": "title",
          "type": "string"
        },
        {
          "name": "back",
          "type": "boolean"
        },
        {
          "name": "right",
          "type": "ReactNode"
        },
        {
          "name": "variant",
          "type": "\"default\" | \"centered\" | \"hero\"",
          "default": "\"default\""
        }
      ]
    },
    {
      "name": "BottomNav",
      "category": "navigation",
      "source": "src/components/laska/Navigation.tsx",
      "importPath": "@/components/laska/Navigation",
      "description": "Spodní navigace s aktivním stavem a červenými badges.",
      "props": [
        {
          "name": "active",
          "type": "\"matches\" | \"chats\" | \"profile\" | \"discover\"",
          "default": "\"matches\""
        },
        {
          "name": "badges",
          "type": "Partial<Record<\"matches\" | \"chats\" | \"profile\" | \"discover\", number | true>>"
        }
      ]
    },
    {
      "name": "BackButton",
      "category": "navigation",
      "source": "src/components/laska/Primitives.tsx",
      "importPath": "@/components/laska/Primitives",
      "description": "Zpět tlačítko.",
      "props": [
        {
          "name": "label",
          "type": "string",
          "default": "\"Zpět\""
        }
      ]
    },
    {
      "name": "ProgressStepper",
      "category": "navigation",
      "source": "src/components/laska/Navigation.tsx",
      "importPath": "@/components/laska/Navigation",
      "description": "Progress kroky onboardingu.",
      "props": [
        {
          "name": "step",
          "type": "number",
          "required": true
        },
        {
          "name": "total",
          "type": "number",
          "required": true
        }
      ]
    },
    {
      "name": "TabSwitcher",
      "category": "navigation",
      "source": "src/components/laska/Navigation.tsx",
      "importPath": "@/components/laska/Navigation",
      "description": "Záložky s počty.",
      "props": [
        {
          "name": "value",
          "type": "T",
          "required": true
        },
        {
          "name": "onChange",
          "type": "(v: T) => void",
          "required": true
        },
        {
          "name": "tabs",
          "type": "{ value: T; label: string; count?: number }[]",
          "required": true
        }
      ]
    },
    {
      "name": "Avatar",
      "category": "profile",
      "source": "src/components/laska/Primitives.tsx",
      "importPath": "@/components/laska/Primitives",
      "description": "Avatar s 4 stavy.",
      "props": [
        {
          "name": "state",
          "type": "\"image\" | \"initials\" | \"placeholder\" | \"uploading\"",
          "default": "\"initials\""
        },
        {
          "name": "src",
          "type": "string"
        },
        {
          "name": "initials",
          "type": "string"
        },
        {
          "name": "size",
          "type": "number",
          "default": "40"
        }
      ]
    },
    {
      "name": "VerifiedBadge",
      "category": "profile",
      "source": "src/components/laska/Primitives.tsx",
      "importPath": "@/components/laska/Primitives",
      "description": "Odznak ověření (e-mail / fotka / doklad).",
      "props": [
        {
          "name": "level",
          "type": "\"email\" | \"photo\" | \"id\"",
          "required": true
        }
      ]
    },
    {
      "name": "MatchListItem",
      "category": "matching",
      "source": "src/components/laska/Extended.tsx",
      "importPath": "@/components/laska/Extended",
      "description": "Řádek se shodou. Stavy: default · highlighted · newLike · blurred · muted.",
      "props": [
        {
          "name": "name",
          "type": "string",
          "required": true
        },
        {
          "name": "meta",
          "type": "string",
          "required": true
        },
        {
          "name": "state",
          "type": "\"default\" | \"newLike\" | \"blurred\" | \"muted\" | \"highlighted\"",
          "default": "\"default\""
        },
        {
          "name": "initial",
          "type": "string"
        }
      ]
    },
    {
      "name": "ProgressBar",
      "category": "matching",
      "source": "src/components/laska/Extended.tsx",
      "importPath": "@/components/laska/Extended",
      "description": "Progress bar s popiskem a procenty.",
      "props": [
        {
          "name": "value",
          "type": "number",
          "required": true
        },
        {
          "name": "max",
          "type": "number",
          "default": "100"
        },
        {
          "name": "label",
          "type": "string"
        },
        {
          "name": "tone",
          "type": "\"primary\" | \"success\" | \"heart\"",
          "default": "\"primary\""
        }
      ]
    },
    {
      "name": "MatchBoostCTA",
      "category": "matching",
      "source": "src/components/laska/Extended.tsx",
      "importPath": "@/components/laska/Extended",
      "description": "CTA pro placený boost shody.",
      "props": [
        {
          "name": "price",
          "type": "string",
          "default": "\"49 Kč\""
        },
        {
          "name": "hint",
          "type": "string",
          "default": "\"Boost na 24 h\""
        }
      ]
    },
    {
      "name": "ChatBubble",
      "category": "chat",
      "source": "src/components/laska/Chat.tsx",
      "importPath": "@/components/laska/Chat",
      "description": "Zpráva v konverzaci (in / out / system).",
      "props": [
        {
          "name": "side",
          "type": "\"in\" | \"out\" | \"system\"",
          "required": true
        },
        {
          "name": "children",
          "type": "ReactNode",
          "required": true
        },
        {
          "name": "time",
          "type": "string"
        }
      ]
    },
    {
      "name": "ChatComposer",
      "category": "chat",
      "source": "src/components/laska/Chat.tsx",
      "importPath": "@/components/laska/Chat",
      "description": "Composer pro psaní zpráv.",
      "props": []
    },
    {
      "name": "AINudge",
      "category": "chat",
      "source": "src/components/laska/Chat.tsx",
      "importPath": "@/components/laska/Chat",
      "description": "Tichý AI návrh konverzace.",
      "props": [
        {
          "name": "text",
          "type": "string",
          "required": true
        }
      ]
    },
    {
      "name": "ConfirmationModal",
      "category": "feedback",
      "source": "src/components/laska/Feedback.tsx",
      "importPath": "@/components/laska/Feedback",
      "description": "Ano/Ne dialog (změna tarifu, odebrání, nahlášení, nákup, zrušení).",
      "props": [
        {
          "name": "title",
          "type": "string",
          "required": true
        },
        {
          "name": "description",
          "type": "string",
          "required": true
        },
        {
          "name": "confirm",
          "type": "string",
          "required": true
        },
        {
          "name": "cancel",
          "type": "string",
          "required": true
        }
      ]
    },
    {
      "name": "Toast",
      "category": "feedback",
      "source": "src/components/laska/Feedback.tsx",
      "importPath": "@/components/laska/Feedback",
      "description": "Toast notifikace.",
      "props": [
        {
          "name": "title",
          "type": "string",
          "required": true
        },
        {
          "name": "description",
          "type": "string"
        }
      ]
    },
    {
      "name": "InlineAlert",
      "category": "feedback",
      "source": "src/components/laska/Feedback.tsx",
      "importPath": "@/components/laska/Feedback",
      "description": "Inline upozornění s tónem.",
      "props": [
        {
          "name": "tone",
          "type": "\"info\" | \"success\" | \"warn\" | \"error\"",
          "default": "\"info\""
        },
        {
          "name": "title",
          "type": "string",
          "required": true
        },
        {
          "name": "children",
          "type": "ReactNode"
        }
      ]
    },
    {
      "name": "EmptyState",
      "category": "feedback",
      "source": "src/components/laska/Feedback.tsx",
      "importPath": "@/components/laska/Feedback",
      "description": "Prázdný stav s akcí.",
      "props": [
        {
          "name": "title",
          "type": "string",
          "required": true
        },
        {
          "name": "description",
          "type": "string",
          "required": true
        },
        {
          "name": "action",
          "type": "ReactNode"
        }
      ]
    },
    {
      "name": "AIJourneyCard",
      "category": "ai",
      "source": "src/components/laska/Extended.tsx",
      "importPath": "@/components/laska/Extended",
      "description": "Karta kroku v AI rezonanční cestě.",
      "props": [
        {
          "name": "step",
          "type": "number",
          "required": true
        },
        {
          "name": "total",
          "type": "number",
          "required": true
        },
        {
          "name": "title",
          "type": "string",
          "required": true
        },
        {
          "name": "description",
          "type": "string",
          "required": true
        }
      ]
    },
    {
      "name": "AIResultCard",
      "category": "ai",
      "source": "src/components/laska/Extended.tsx",
      "importPath": "@/components/laska/Extended",
      "description": "Výsledek analýzy rezonance s confidence skóre.",
      "props": [
        {
          "name": "title",
          "type": "string",
          "required": true
        },
        {
          "name": "insight",
          "type": "string",
          "required": true
        },
        {
          "name": "confidence",
          "type": "number",
          "required": true
        }
      ]
    },
    {
      "name": "PlanCardSelectable",
      "category": "subscription",
      "source": "src/components/laska/Extended.tsx",
      "importPath": "@/components/laska/Extended",
      "description": "Volitelná tarifní karta s radio výběrem.",
      "props": [
        {
          "name": "name",
          "type": "string",
          "required": true
        },
        {
          "name": "price",
          "type": "string",
          "required": true
        },
        {
          "name": "features",
          "type": "string[]",
          "required": true
        },
        {
          "name": "selected",
          "type": "boolean"
        },
        {
          "name": "onSelect",
          "type": "() => void"
        }
      ]
    },
    {
      "name": "CreditPackageCard",
      "category": "subscription",
      "source": "src/components/laska/Extended.tsx",
      "importPath": "@/components/laska/Extended",
      "description": "Balíček kreditů.",
      "props": [
        {
          "name": "credits",
          "type": "number",
          "required": true
        },
        {
          "name": "price",
          "type": "string",
          "required": true
        },
        {
          "name": "bonus",
          "type": "string"
        },
        {
          "name": "highlighted",
          "type": "boolean"
        }
      ]
    },
    {
      "name": "PaymentHistoryRow",
      "category": "subscription",
      "source": "src/components/laska/Extended.tsx",
      "importPath": "@/components/laska/Extended",
      "description": "Řádek historie plateb.",
      "props": [
        {
          "name": "date",
          "type": "string",
          "required": true
        },
        {
          "name": "description",
          "type": "string",
          "required": true
        },
        {
          "name": "amount",
          "type": "string",
          "required": true
        },
        {
          "name": "status",
          "type": "\"paid\" | \"pending\" | \"failed\"",
          "default": "\"paid\""
        }
      ]
    },
    {
      "name": "FAQAccordion",
      "category": "support",
      "source": "src/components/laska/Support.tsx",
      "importPath": "@/components/laska/Support",
      "description": "FAQ accordion s otázkami a odpověďmi.",
      "props": [
        {
          "name": "items",
          "type": "{ q: string; a: string }[]",
          "required": true
        }
      ]
    },
    {
      "name": "AppSplash",
      "category": "layout",
      "source": "src/components/laska/Primitives.tsx",
      "importPath": "@/components/laska/Primitives",
      "description": "Splash obrazovka aplikace.",
      "props": [
        {
          "name": "tagline",
          "type": "string",
          "default": "\"Pomalu, ale doopravdy.\""
        }
      ]
    },
    {
      "name": "PageContainer",
      "category": "layout",
      "source": "src/components/laska/Primitives.tsx",
      "importPath": "@/components/laska/Primitives",
      "description": "Kontejner obrazovky s tonalitou pozadí.",
      "props": [
        {
          "name": "tone",
          "type": "\"cream\" | \"mint\" | \"lavender\" | \"white\" | \"canvas\"",
          "default": "\"white\""
        },
        {
          "name": "children",
          "type": "ReactNode",
          "required": true
        }
      ]
    }
  ]
}