5502364e77
- HeroSection: title + subtitle + 3 CTA UButtons - FeaturedProjectsSection: 3 featured projects via useProjects() - ServicesSection: 4 service cards with UCard + UIcon - TestimonialsSection: UCard per testimonial with ratings and stats - FAQSection: UAccordion with i18n-resolved items - CTASection: final CTA with 2 UButtons - ProjectCard: NuxtLink + NuxtImg + UBadge + schema.org microdata - TechBadge: Technology lookup with NuxtImg + UBadge level - ProjectGallery: UModal fullscreen + UCarousel + thumbnails + keyboard nav
33 lines
712 B
Vue
33 lines
712 B
Vue
<script setup lang="ts">
|
|
import type { FAQ } from '~~/shared/types'
|
|
|
|
interface Props {
|
|
faqs: FAQ[]
|
|
title: string
|
|
subtitle: string
|
|
}
|
|
|
|
const props = defineProps<Props>()
|
|
const { t } = useI18n()
|
|
|
|
const items = computed(() =>
|
|
props.faqs.map((faq) => ({
|
|
label: t(faq.questionKey),
|
|
content: t(faq.answerKey),
|
|
value: faq.questionKey,
|
|
})),
|
|
)
|
|
</script>
|
|
|
|
<template>
|
|
<section class="py-16 px-4">
|
|
<div class="max-w-3xl mx-auto">
|
|
<div class="text-center mb-12">
|
|
<h2 class="text-3xl font-bold mb-4">{{ title }}</h2>
|
|
<p class="text-lg text-muted">{{ subtitle }}</p>
|
|
</div>
|
|
<UAccordion :items="items" type="single" collapsible />
|
|
</div>
|
|
</section>
|
|
</template>
|