203 lines
8.8 KiB
JavaScript
203 lines
8.8 KiB
JavaScript
import { mergeProps, createVNode, resolveDynamicComponent, unref, withCtx, createTextVNode, useSSRContext } from 'vue';
|
|
import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrRenderClass, ssrRenderVNode, ssrInterpolate } from 'vue/server-renderer';
|
|
import { _ as __nuxt_component_0$1 } from './server.mjs';
|
|
import { Star, Check, Heart, FileText, Eye } from 'lucide-vue-next';
|
|
import { u as useHead } from './composables-CK-Mp9jS.mjs';
|
|
import '../nitro/nitro.mjs';
|
|
import 'node:http';
|
|
import 'node:https';
|
|
import 'node:events';
|
|
import 'node:buffer';
|
|
import 'node:fs';
|
|
import 'node:path';
|
|
import 'node:crypto';
|
|
import 'node:url';
|
|
import '../routes/renderer.mjs';
|
|
import 'vue-bundle-renderer/runtime';
|
|
import 'unhead/server';
|
|
import 'devalue';
|
|
import 'unhead/utils';
|
|
import 'pinia';
|
|
import 'vue-router';
|
|
|
|
const _sfc_main$1 = {
|
|
__name: "Membership",
|
|
__ssrInlineRender: true,
|
|
setup(__props) {
|
|
const plans = [
|
|
{
|
|
name: "Kinder/Jugend",
|
|
price: "72",
|
|
period: "Jahr",
|
|
description: "Perfekt für junge Tischtennisspieler bis 18 Jahre",
|
|
features: [
|
|
"Unbegrenzte Hallennutzung",
|
|
"Kostenfreies Jugendtraining",
|
|
"Teilnahme an Jugendturnieren",
|
|
"Clubveranstaltungen",
|
|
"Gäste mitbringen"
|
|
],
|
|
icon: Star,
|
|
gradient: "from-blue-500 to-cyan-500"
|
|
},
|
|
{
|
|
name: "Erwachsene",
|
|
price: "120",
|
|
period: "Jahr",
|
|
description: "Vollmitgliedschaft für Erwachsene",
|
|
features: [
|
|
"Unbegrenzte Hallennutzung",
|
|
"Freies Spielen nach Verfügbarkeit",
|
|
"Clubveranstaltungen",
|
|
"Gäste mitbringen",
|
|
"Zugang Trainingsbereich"
|
|
],
|
|
icon: Check,
|
|
gradient: "from-primary-500 to-green-600",
|
|
popular: true
|
|
},
|
|
{
|
|
name: "Passiv",
|
|
price: "30",
|
|
period: "Jahr",
|
|
description: "Unterstützen Sie Ihren Lieblingsverein",
|
|
features: [
|
|
"Vereinsunterstützung",
|
|
"Vereinsinformationen",
|
|
"Keine Spielberechtigung"
|
|
],
|
|
icon: Heart,
|
|
gradient: "from-orange-500 to-red-500"
|
|
}
|
|
];
|
|
return (_ctx, _push, _parent, _attrs) => {
|
|
const _component_NuxtLink = __nuxt_component_0$1;
|
|
_push(`<section${ssrRenderAttrs(mergeProps({
|
|
id: "membership",
|
|
class: "py-16 sm:py-20 bg-gradient-to-b from-gray-50 to-white"
|
|
}, _attrs))}><div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"><div class="text-center mb-16"><h2 class="text-4xl sm:text-5xl font-display font-bold text-gray-900 mb-4"> Mitgliedschaft </h2><div class="w-24 h-1 bg-primary-600 mx-auto mb-6"></div><p class="text-xl text-gray-600 max-w-3xl mx-auto"> Werden Sie Teil unserer Tischtennis-Familie - Wählen Sie die passende Mitgliedschaft für sich </p></div><div class="grid md:grid-cols-3 gap-8 max-w-6xl mx-auto"><!--[-->`);
|
|
ssrRenderList(plans, (plan) => {
|
|
_push(`<div class="${ssrRenderClass([
|
|
"relative bg-white rounded-2xl shadow-xl overflow-hidden",
|
|
plan.popular ? "ring-4 ring-primary-500 scale-105" : ""
|
|
])}">`);
|
|
if (plan.popular) {
|
|
_push(`<div class="absolute top-0 right-0 bg-primary-600 text-white px-4 py-1 text-sm font-semibold rounded-bl-lg"> Beliebt </div>`);
|
|
} else {
|
|
_push(`<!---->`);
|
|
}
|
|
_push(`<div class="${ssrRenderClass(["h-2 bg-gradient-to-r", plan.gradient])}"></div><div class="p-8"><div class="${ssrRenderClass(["w-12 h-12 bg-gradient-to-br rounded-xl flex items-center justify-center mb-4", plan.gradient])}">`);
|
|
ssrRenderVNode(_push, createVNode(resolveDynamicComponent(plan.icon), {
|
|
size: 24,
|
|
class: "text-white"
|
|
}, null), _parent);
|
|
_push(`</div><h3 class="text-2xl font-display font-bold text-gray-900 mb-2">${ssrInterpolate(plan.name)}</h3><p class="text-gray-600 mb-6 min-h-[3rem]">${ssrInterpolate(plan.description)}</p><div class="mb-6"><div class="flex items-baseline"><span class="text-5xl font-bold text-gray-900">${ssrInterpolate(plan.price)}€</span><span class="text-gray-600 ml-2">/ ${ssrInterpolate(plan.period)}</span></div></div><ul class="space-y-3 mb-8"><!--[-->`);
|
|
ssrRenderList(plan.features, (feature) => {
|
|
_push(`<li class="flex items-start">`);
|
|
_push(ssrRenderComponent(unref(Check), {
|
|
size: 20,
|
|
class: "text-primary-600 mr-3 flex-shrink-0 mt-0.5"
|
|
}, null, _parent));
|
|
_push(`<span class="text-gray-700">${ssrInterpolate(feature)}</span></li>`);
|
|
});
|
|
_push(`<!--]--></ul>`);
|
|
_push(ssrRenderComponent(_component_NuxtLink, {
|
|
to: "/kontakt",
|
|
class: [
|
|
"block w-full text-center px-6 py-3 rounded-lg font-semibold transition-all duration-300",
|
|
plan.popular ? "bg-primary-600 hover:bg-primary-700 text-white shadow-lg hover:shadow-xl" : "bg-gray-100 hover:bg-gray-200 text-gray-900"
|
|
]
|
|
}, {
|
|
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
if (_push2) {
|
|
_push2(` Jetzt beitreten `);
|
|
} else {
|
|
return [
|
|
createTextVNode(" Jetzt beitreten ")
|
|
];
|
|
}
|
|
}),
|
|
_: 2
|
|
}, _parent));
|
|
_push(`</div></div>`);
|
|
});
|
|
_push(`<!--]--></div><div class="mt-16 bg-white rounded-2xl shadow-xl p-8 border border-gray-100"><div class="text-center mb-8"><h3 class="text-3xl font-display font-bold text-gray-900 mb-4"> Vereinsatzung </h3><p class="text-xl text-gray-600"> Laden Sie unsere aktuelle Vereinsatzung herunter </p></div><div class="flex flex-col sm:flex-row gap-4 justify-center items-center"><a href="/documents/satzung.pdf" target="_blank" class="inline-flex items-center px-6 py-3 bg-primary-600 hover:bg-primary-700 text-white font-semibold rounded-lg transition-colors">`);
|
|
_push(ssrRenderComponent(unref(FileText), {
|
|
size: 20,
|
|
class: "mr-2"
|
|
}, null, _parent));
|
|
_push(` Satzung herunterladen (PDF) </a><span class="text-sm text-gray-500">oder</span>`);
|
|
_push(ssrRenderComponent(_component_NuxtLink, {
|
|
to: "/satzung",
|
|
class: "inline-flex items-center px-6 py-3 bg-gray-100 hover:bg-gray-200 text-gray-900 font-semibold rounded-lg transition-colors"
|
|
}, {
|
|
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
if (_push2) {
|
|
_push2(ssrRenderComponent(unref(Eye), {
|
|
size: 20,
|
|
class: "mr-2"
|
|
}, null, _parent2, _scopeId));
|
|
_push2(` Online ansehen `);
|
|
} else {
|
|
return [
|
|
createVNode(unref(Eye), {
|
|
size: 20,
|
|
class: "mr-2"
|
|
}),
|
|
createTextVNode(" Online ansehen ")
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent));
|
|
_push(`</div></div><div class="mt-16 bg-gradient-to-r from-primary-600 to-primary-700 rounded-2xl p-8 sm:p-12 text-center"><h3 class="text-3xl font-display font-bold text-white mb-4"> Noch Fragen zur Mitgliedschaft? </h3><p class="text-xl text-primary-100 mb-6"> Kontaktieren Sie uns - wir beraten Sie gerne persönlich </p>`);
|
|
_push(ssrRenderComponent(_component_NuxtLink, {
|
|
to: "/kontakt",
|
|
class: "inline-flex items-center px-8 py-4 bg-white text-primary-600 font-semibold rounded-lg hover:bg-gray-100 transition-colors"
|
|
}, {
|
|
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
if (_push2) {
|
|
_push2(` Jetzt Kontakt aufnehmen `);
|
|
} else {
|
|
return [
|
|
createTextVNode(" Jetzt Kontakt aufnehmen ")
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent));
|
|
_push(`</div></div></section>`);
|
|
};
|
|
}
|
|
};
|
|
const _sfc_setup$1 = _sfc_main$1.setup;
|
|
_sfc_main$1.setup = (props, ctx) => {
|
|
const ssrContext = useSSRContext();
|
|
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/Membership.vue");
|
|
return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
|
|
};
|
|
const Membership = Object.assign(_sfc_main$1, { __name: "Membership" });
|
|
const _sfc_main = {
|
|
__name: "mitgliedschaft",
|
|
__ssrInlineRender: true,
|
|
setup(__props) {
|
|
useHead({
|
|
title: "Mitgliedschaft - Harheimer TC"
|
|
});
|
|
return (_ctx, _push, _parent, _attrs) => {
|
|
_push(`<div${ssrRenderAttrs(mergeProps({ class: "min-h-screen" }, _attrs))}>`);
|
|
_push(ssrRenderComponent(Membership, null, null, _parent));
|
|
_push(`</div>`);
|
|
};
|
|
}
|
|
};
|
|
const _sfc_setup = _sfc_main.setup;
|
|
_sfc_main.setup = (props, ctx) => {
|
|
const ssrContext = useSSRContext();
|
|
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/mitgliedschaft.vue");
|
|
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
|
};
|
|
|
|
export { _sfc_main as default };
|
|
//# sourceMappingURL=mitgliedschaft-ItL-1heT.mjs.map
|