finalize suggestion mechanic

This commit is contained in:
overcuriousity 2025-07-26 22:56:32 +02:00
parent 644dff2387
commit 89af71101e
2 changed files with 153 additions and 1 deletions

View File

@ -57,6 +57,27 @@ const domainAgnosticSoftware = data['domain-agnostic-software'] || [];
</div> </div>
<div class="ai-suggestions-section"> <div class="ai-suggestions-section">
<div id="smart-prompting-hint" class="smart-prompting-hint">
<div class="hint-card">
<div class="hint-icon">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--color-accent)" stroke-width="2">
<circle cx="12" cy="12" r="10"/>
<path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/>
<line x1="12" y1="17" x2="12.01" y2="17"/>
</svg>
</div>
<div class="hint-content">
<h4 class="hint-title">Intelligente Hilfe</h4>
<p class="hint-description">
Während Sie tippen, analysiert die KI Ihre Eingabe und schlägt gezielten Fragen vor, um Ihr Szenario zu präzisieren.
</p>
<div class="hint-trigger">
<span class="hint-label">Aktiviert ab:</span>
<span class="hint-value">40+ Zeichen</span>
</div>
</div>
</div>
</div>
<div id="smart-prompting-container" class="smart-prompting-container" style="display: none;"> <div id="smart-prompting-container" class="smart-prompting-container" style="display: none;">
<div class="prompting-card"> <div class="prompting-card">
<div id="prompting-status" class="prompting-status"> <div id="prompting-status" class="prompting-status">
@ -158,7 +179,7 @@ const domainAgnosticSoftware = data['domain-agnostic-software'] || [];
<p id="ai-error-message" style="margin: 0;">Ein unerwarteter Fehler ist aufgetreten. Bitte versuchen Sie es erneut.</p> <p id="ai-error-message" style="margin: 0;">Ein unerwarteter Fehler ist aufgetreten. Bitte versuchen Sie es erneut.</p>
</div> </div>
</div> </div>
<br>
<div id="ai-results" class="ai-results" style="display: none;"> <div id="ai-results" class="ai-results" style="display: none;">
</div> </div>
</section> </section>
@ -277,6 +298,7 @@ document.addEventListener('DOMContentLoaded', () => {
switch (state) { switch (state) {
case 'analyzing': case 'analyzing':
smartPromptingContainer.style.display = 'block'; smartPromptingContainer.style.display = 'block';
toggleHintVisibility(false);
statusText.textContent = 'Analysiere Eingabe...'; statusText.textContent = 'Analysiere Eingabe...';
promptingSpinner.style.display = 'inline-block'; promptingSpinner.style.display = 'inline-block';
suggestedQuestions.style.display = 'none'; suggestedQuestions.style.display = 'none';
@ -293,9 +315,11 @@ document.addEventListener('DOMContentLoaded', () => {
break; break;
case 'error': case 'error':
smartPromptingContainer.style.display = 'none'; smartPromptingContainer.style.display = 'none';
toggleHintVisibility(true);
break; break;
case 'hidden': case 'hidden':
smartPromptingContainer.style.display = 'none'; smartPromptingContainer.style.display = 'none';
toggleHintVisibility(true);
break; break;
} }
} }
@ -378,6 +402,14 @@ document.addEventListener('DOMContentLoaded', () => {
enhancementAbortController.abort(); enhancementAbortController.abort();
} }
showPromptingStatus('hidden'); showPromptingStatus('hidden');
toggleHintVisibility(true);
}
function toggleHintVisibility(show) {
const hint = document.getElementById('smart-prompting-hint');
if (hint) {
hint.style.display = show ? 'flex' : 'none';
}
} }
toggleSwitch.addEventListener('click', () => { toggleSwitch.addEventListener('click', () => {

View File

@ -1806,6 +1806,18 @@ footer {
.form-grid.two-columns { .form-grid.two-columns {
grid-template-columns: 1fr; grid-template-columns: 1fr;
} }
.hint-card {
padding: 1rem;
}
.hint-description {
font-size: 0.6875rem;
}
.hint-trigger {
flex-direction: column;
gap: 0.25rem;
}
} }
@media (width <= 640px) { @media (width <= 640px) {
@ -1961,6 +1973,17 @@ footer {
.queue-status-card { .queue-status-card {
padding: 1rem; padding: 1rem;
} }
.hint-card {
padding: 0.75rem;
}
.hint-title {
font-size: 0.8125rem;
}
.hint-description {
font-size: 0.625rem;
}
} }
/* Smart Prompting Styles - Simplified */ /* Smart Prompting Styles - Simplified */
@ -2013,6 +2036,103 @@ footer {
animation: spin 1s linear infinite; animation: spin 1s linear infinite;
} }
/* Smart Prompting Hint */
.smart-prompting-hint {
height: 100%;
min-height: 120px;
display: flex;
align-items: center;
animation: hintFadeIn 0.3s ease-in-out;
}
.hint-card {
background: linear-gradient(135deg, var(--color-bg-secondary) 0%, var(--color-bg-tertiary) 100%);
border: 1px dashed var(--color-border);
border-radius: 0.5rem;
padding: 1.25rem;
width: 100%;
text-align: center;
opacity: 0.7;
transition: var(--transition-medium);
}
.hint-card:hover {
opacity: 0.9;
border-color: var(--color-accent);
transform: translateY(-1px);
}
.hint-icon {
margin-bottom: 0.75rem;
opacity: 0.8;
}
.hint-content {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.hint-title {
margin: 0;
font-size: 0.875rem;
font-weight: 600;
color: var(--color-text);
letter-spacing: 0.025em;
}
.hint-description {
margin: 0;
font-size: 0.75rem;
line-height: 1.5;
color: var(--color-text-secondary);
}
.hint-trigger {
display: flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
margin-top: 0.25rem;
padding-top: 0.75rem;
border-top: 1px solid var(--color-border);
}
.hint-label {
font-size: 0.6875rem;
color: var(--color-text-secondary);
text-transform: uppercase;
letter-spacing: 0.05em;
font-weight: 500;
}
.hint-value {
font-size: 0.75rem;
font-weight: 600;
color: var(--color-accent);
background-color: var(--color-bg);
padding: 0.125rem 0.5rem;
border-radius: 1rem;
border: 1px solid var(--color-accent);
}
/* Hide hint when smart prompting is active */
.smart-prompting-container[style*="block"] ~ .smart-prompting-hint,
.smart-prompting-container:not([style*="none"]) ~ .smart-prompting-hint {
display: none;
}
@keyframes hintFadeIn {
from {
opacity: 0;
transform: translateY(10px);
}
to {
opacity: 0.7;
transform: translateY(0);
}
}
.suggested-questions { .suggested-questions {
flex: 1; flex: 1;
display: flex; display: flex;