tsx
import React from 'react'
import { PromptInput } from './PromptInput'
import { ModelSelector } from './ModelSelector'
import { OptimizationResult } from './OptimizationResult'
import { ComparisonView } from './ComparisonView'
import { LoadingState } from './LoadingState'
import { ErrorMessage } from './ErrorMessage'
import { useAppStore } from '@/store/useAppStore'

/**
 * Main component for the Prompt Enhancement application
 * Orchestrates the different components and handles the main workflow
 */
export function PromptEnhancer() {
  const {
    prompt,
    selectedModel,
    isOptimizing,
    result,
    error,
    showComparison,
    canOptimize,
    optimizePrompt,
    setShowComparison
  } = useAppStore()

  return (
    <div className="max-w-6xl mx-auto space-y-8">
      {/* Header Section */}
      <div className="text-center">
        <h2 className="text-3xl font-bold text-gray-900 dark:text-gray-100 mb-4">
          KI-Prompt Optimierung
        </h2>
        <p className="text-lg text-gray-600 dark:text-gray-400 max-w-3xl mx-auto">
          Transformiere deine Prompts in präzise, effektive Anweisungen für maximale KI-Performance. 
          Wähle deine Ziel-KI und lass unser System die Optimierung übernehmen.
        </p>
      </div>

      {/* Main Input Section */}
      <div className="grid lg:grid-cols-2 gap-8">
        {/* Input Column */}
        <div className="space-y-6">
          <div className="card p-6">
            <h3 className="text-xl font-semibold text-gray-900 dark:text-gray-100 mb-4">
              Dein Prompt
            </h3>
            <PromptInput />
          </div>

          <div className="card p-6">
            <h3 className="text-xl font-semibold text-gray-900 dark:text-gray-100 mb-4">
              Ziel-KI auswählen
            </h3>
            <ModelSelector />
          </div>

          {/* Action Buttons */}
          <div className="flex flex-col sm:flex-row gap-4">
            <button
              onClick={optimizePrompt}
              disabled={!canOptimize()}
              className="flex-1 btn-primary text-lg py-3 disabled:opacity-50 disabled:cursor-not-allowed"
            >
              {isOptimizing ? (
                <>
                  <div className="w-5 h-5 border-2 border-white border-t-transparent rounded-full animate-spin mr-2" />
                  Optimiere...
                </>
              ) : (
                'Prompt optimieren'
              )}
            </button>
            
            {result && (
              <button
                onClick={() => setShowComparison(!showComparison)}
                className="btn-secondary px-6"
              >
                {showComparison ? 'Einzelansicht' : 'Vergleich anzeigen'}
              </button>
            )}
          </div>
        </div>

        {/* Output Column */}
        <div className="space-y-6">
          {error && <ErrorMessage />}
          
          {isOptimizing && <LoadingState />}
          
          {result && !showComparison && <OptimizationResult />}
          
          {result && showComparison && <ComparisonView />}
          
          {!result && !isOptimizing && !error && (
            <div className="card p-8 text-center">
              <div className="w-16 h-16 bg-gradient-to-br from-primary-500 to-secondary-500 rounded-full flex items-center justify-center mx-auto mb-4">
                <svg className="w-8 h-8 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                  <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M13 10V3L4 14h7v7l9-11h-7z" />
                </svg>
              </div>
              <h3 className="text-xl font-semibold text-gray-900 dark:text-gray-100 mb-2">
                Bereit zur Optimierung
              </h3>
              <p className="text-gray-600 dark:text-gray-400">
                Gib deinen Prompt ein und wähle eine Ziel-KI aus, um zu beginnen.
              </p>
            </div>
          )}
        </div>
      </div>

      {/* Features Section */}
      <div className="card p-8 mt-12">
        <h3 className="text-2xl font-bold text-gray-900 dark:text-gray-100 mb-6 text-center">
          Warum Prompt Enhancer verwenden?
        </h3>
        
        <div className="grid md:grid-cols-3 gap-8">
          <div className="text-center">
            <div className="w-12 h-12 bg-primary-100 dark:bg-primary-900 rounded-lg flex items-center justify-center mx-auto mb-4">
              <svg className="w-6 h-6 text-primary-600 dark:text-primary-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z" />
              </svg>
            </div>
            <h4 className="text-lg font-semibold text-gray-900 dark:text-gray-100 mb-2">
              KI-spezifische Optimierung
            </h4>
            <p className="text-gray-600 dark:text-gray-400">
              Jede KI-Plattform hat einzigartige Anforderungen. Unsere Engine berücksichtigt das.
            </p>
          </div>
          
          <div className="text-center">
            <div className="w-12 h-12 bg-secondary-100 dark:bg-secondary-900 rounded-lg flex items-center justify-center mx-auto mb-4">
              <svg className="w-6 h-6 text-secondary-600 dark:text-secondary-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6" />
              </svg>
            </div>
            <h4 className="text-lg font-semibold text-gray-900 dark:text-gray-100 mb-2">
              Messbare Verbesserungen
            </h4>
            <p className="text-gray-600 dark:text-gray-400">
              Strukturierte, spezifischere und ausführbarere Prompts für bessere KI-Ergebnisse.
            </p>
          </div>
          
          <div className="text-center">
            <div className="w-12 h-12 bg-green-100 dark:bg-green-900 rounded-lg flex items-center justify-center mx-auto mb-4">
              <svg className="w-6 h-6 text-green-600 dark:text-green-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M5 13l4 4L19 7" />
              </svg>
            </div>
            <h4 className="text-lg font-semibold text-gray-900 dark:text-gray-100 mb-2">
              Produktionsreif
            </h4>
            <p className="text-gray-600 dark:text-gray-400">
              Robuste Fehlerbehandlung, Optimierung und Benutzerfreundlichkeit in jedem Detail.
            </p>
          </div>
        </div>
      </div>
    </div>
  )
}

</html>