managarten/packages/help/src/components/FAQItem.svelte
Till JS 5e05c532a2 fix(packages): fix type errors in consolidated packages + add missing files
- credits: fix mobile import paths (./operations → ../operations)
- feedback: fix createFeedbackService import (./feedback → ./api),
  recover missing types.ts from git history
- help: add package files (were untracked after consolidation)
- Update lockfile after package restructuring

All packages pass tsc --noEmit (excluding expected .svelte imports).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 17:53:34 +01:00

46 lines
1.2 KiB
Svelte

<script lang="ts">
import type { FAQItem } from './content';
interface Props {
item: FAQItem;
expanded?: boolean;
onToggle?: () => void;
}
let { item, expanded = false, onToggle }: Props = $props();
function handleKeyDown(event: KeyboardEvent) {
if (event.key === 'Enter' || event.key === ' ') {
event.preventDefault();
onToggle?.();
}
}
</script>
<div class="border-b border-gray-200 dark:border-gray-700">
<button
type="button"
class="flex w-full items-center justify-between py-4 text-left transition-colors hover:bg-gray-50 dark:hover:bg-gray-800/50"
aria-expanded={expanded}
onclick={onToggle}
onkeydown={handleKeyDown}
>
<span class="pr-4 font-medium text-gray-900 dark:text-gray-100">
{item.question}
</span>
<span
class="flex-shrink-0 text-gray-500 transition-transform duration-200 dark:text-gray-400"
class:rotate-180={expanded}
>
<svg class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" />
</svg>
</span>
</button>
{#if expanded}
<div class="prose prose-sm dark:prose-invert max-w-none pb-4 text-gray-600 dark:text-gray-300">
{@html item.answer}
</div>
{/if}
</div>