cat-framework-core 0.4.3 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,18 +1,18 @@
1
- import { jsx as e, jsxs as o } from "react/jsx-runtime";
2
- import { clsx as G } from "clsx";
3
- import { twMerge as Z } from "tailwind-merge";
1
+ import { jsx as e, jsxs as i } from "react/jsx-runtime";
2
+ import { clsx as J } from "clsx";
3
+ import { twMerge as L } from "tailwind-merge";
4
4
  import { cva as B } from "class-variance-authority";
5
- import * as w from "react";
6
- import S, { useState as v, createContext as J, useContext as L, useCallback as $, useEffect as Q } from "react";
7
- import { Slot as X } from "@radix-ui/react-slot";
8
- import { motion as F } from "framer-motion";
9
- import * as N from "@radix-ui/react-accordion";
10
- import { ChevronDown as j, X as U, Menu as Y, Search as ee, ChevronRight as re, Cloud as te, Star as ae, Check as ne } from "lucide-react";
11
- import * as H from "@radix-ui/react-label";
5
+ import * as k from "react";
6
+ import V, { useRef as $, useEffect as T, useState as v, createContext as Q, useContext as X, useCallback as U } from "react";
7
+ import { Slot as Y } from "@radix-ui/react-slot";
8
+ import { motion as S } from "framer-motion";
9
+ import * as w from "@radix-ui/react-accordion";
10
+ import { ChevronDown as R, X as ee, Menu as re, Search as te, ChevronRight as ae, Cloud as ne, Star as oe, Check as ie } from "lucide-react";
11
+ import * as I from "@radix-ui/react-label";
12
12
  function l(...t) {
13
- return Z(G(t));
13
+ return L(J(t));
14
14
  }
15
- const oe = B("", {
15
+ const se = B("", {
16
16
  variants: {
17
17
  variant: {
18
18
  h1: "font-display text-4xl font-bold tracking-tight sm:text-5xl lg:text-6xl",
@@ -39,7 +39,7 @@ const oe = B("", {
39
39
  variant: "body",
40
40
  color: "default"
41
41
  }
42
- }), ie = {
42
+ }), de = {
43
43
  h1: "h1",
44
44
  h2: "h2",
45
45
  h3: "h3",
@@ -51,22 +51,22 @@ const oe = B("", {
51
51
  "body-lg": "p",
52
52
  caption: "span",
53
53
  overline: "span"
54
- }, m = S.forwardRef(
55
- ({ className: t, variant: n = "body", tone: r = "default", as: i, children: s, ...a }, d) => {
56
- const h = i || ie[n] || "p";
54
+ }, u = V.forwardRef(
55
+ ({ className: t, variant: a = "body", tone: r = "default", as: o, children: s, ...n }, d) => {
56
+ const f = o || de[a] || "p";
57
57
  return /* @__PURE__ */ e(
58
- h,
58
+ f,
59
59
  {
60
60
  ref: d,
61
- className: l(oe({ variant: n, color: r, className: t })),
62
- ...a,
61
+ className: l(se({ variant: a, color: r, className: t })),
62
+ ...n,
63
63
  children: s
64
64
  }
65
65
  );
66
66
  }
67
67
  );
68
- m.displayName = "Typography";
69
- const se = B(
68
+ u.displayName = "Typography";
69
+ const le = B(
70
70
  "inline-flex items-center rounded-full px-3 py-0.5 font-body text-xs font-medium transition-fast",
71
71
  {
72
72
  variants: {
@@ -81,11 +81,11 @@ const se = B(
81
81
  },
82
82
  defaultVariants: { variant: "default" }
83
83
  }
84
- ), de = S.forwardRef(
85
- ({ className: t, variant: n, ...r }, i) => /* @__PURE__ */ e("span", { ref: i, className: l(se({ variant: n, className: t })), ...r })
84
+ ), ce = V.forwardRef(
85
+ ({ className: t, variant: a, ...r }, o) => /* @__PURE__ */ e("span", { ref: o, className: l(le({ variant: a, className: t })), ...r })
86
86
  );
87
- de.displayName = "Badge";
88
- const le = B(
87
+ ce.displayName = "Badge";
88
+ const me = B(
89
89
  "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-xl font-medium font-body transition-fast focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
90
90
  {
91
91
  variants: {
@@ -112,139 +112,181 @@ const le = B(
112
112
  size: "default"
113
113
  }
114
114
  }
115
- ), b = w.forwardRef(
116
- ({ className: t, variant: n, size: r, asChild: i = !1, ...s }, a) => /* @__PURE__ */ e(i ? X : "button", { className: l(le({ variant: n, size: r, className: t })), ref: a, ...s })
115
+ ), b = k.forwardRef(
116
+ ({ className: t, variant: a, size: r, asChild: o = !1, ...s }, n) => /* @__PURE__ */ e(o ? Y : "button", { className: l(me({ variant: a, size: r, className: t })), ref: n, ...s })
117
117
  );
118
118
  b.displayName = "Button";
119
- const ke = ({
119
+ const M = ({
120
+ src: t,
121
+ className: a,
122
+ poster: r
123
+ }) => {
124
+ const o = $(null);
125
+ return T(() => {
126
+ var s;
127
+ (s = o.current) == null || s.play().catch(() => {
128
+ });
129
+ }, [t]), /* @__PURE__ */ e(
130
+ "video",
131
+ {
132
+ ref: o,
133
+ src: t,
134
+ poster: r,
135
+ autoPlay: !0,
136
+ loop: !0,
137
+ muted: !0,
138
+ playsInline: !0,
139
+ className: a
140
+ }
141
+ );
142
+ }, ze = ({
120
143
  headline: t,
121
- headlineMobile: n,
144
+ headlineMobile: a,
122
145
  subheadline: r,
123
- subheadlineMobile: i,
146
+ subheadlineMobile: o,
124
147
  ctaLabel: s,
125
- ctaHref: a = "#",
148
+ ctaHref: n = "#",
126
149
  secondaryCtaLabel: d,
127
- secondaryCtaHref: h = "#",
128
- backgroundImage: u,
150
+ secondaryCtaHref: f = "#",
151
+ backgroundImage: m,
129
152
  backgroundImageMobile: g,
130
- imageAlt: p = "",
131
- className: y,
132
- ...k
133
- }) => /* @__PURE__ */ o("section", { className: l("relative overflow-hidden", y), ...k, children: [
134
- /* @__PURE__ */ o("div", { className: "hidden md:flex relative min-h-[420px] md:min-h-[420px] lg:min-h-[600px]", children: [
135
- u && /* @__PURE__ */ e(
136
- "img",
137
- {
138
- src: u,
139
- alt: p,
140
- className: "absolute inset-0 h-full w-full object-cover object-right",
141
- loading: "eager"
142
- }
143
- ),
144
- /* @__PURE__ */ e("div", { className: "absolute inset-0 bg-gradient-to-r from-black/80 via-black/50 to-transparent" }),
145
- /* @__PURE__ */ e("div", { className: "relative z-10 flex items-center w-full pl-8 lg:pl-16", children: /* @__PURE__ */ o(
146
- F.div,
147
- {
148
- initial: { opacity: 0, y: 16 },
149
- animate: { opacity: 1, y: 0 },
150
- transition: { duration: 0.4, ease: "easeOut" },
151
- className: "px-6 py-16 lg:px-8 lg:py-20 max-w-[500px] lg:max-w-[480px]",
152
- children: [
153
- /* @__PURE__ */ e(m, { variant: "h1", className: "text-white drop-shadow-lg", as: "h1", children: t }),
154
- r && /* @__PURE__ */ e(m, { variant: "body-lg", className: "mt-4 text-white/85 drop-shadow-md", children: r }),
155
- (s || d) && /* @__PURE__ */ o("div", { className: "mt-8 flex flex-wrap gap-4", children: [
156
- s && /* @__PURE__ */ e(
157
- b,
158
- {
159
- size: "lg",
160
- className: "bg-primary text-primary-foreground hover:bg-primary/90 shadow-lg",
161
- asChild: !0,
162
- children: /* @__PURE__ */ e("a", { href: a, children: s })
163
- }
164
- ),
165
- d && /* @__PURE__ */ e(
166
- b,
167
- {
168
- size: "lg",
169
- variant: "outline",
170
- className: "border-white/40 text-foreground bg-white/90 hover:bg-white shadow-lg",
171
- asChild: !0,
172
- children: /* @__PURE__ */ e("a", { href: h, children: d })
173
- }
174
- )
175
- ] })
176
- ]
177
- }
178
- ) })
179
- ] }),
180
- /* @__PURE__ */ o("div", { className: "block md:hidden relative min-h-[85vh] flex flex-col", children: [
181
- (g || u) && /* @__PURE__ */ e(
182
- "img",
183
- {
184
- src: g || u,
185
- alt: p,
186
- className: "absolute inset-0 h-full w-full object-cover object-center",
187
- loading: "eager"
188
- }
189
- ),
190
- /* @__PURE__ */ e("div", { className: "absolute inset-0 bg-gradient-to-b from-black/70 via-transparent to-black/80" }),
191
- /* @__PURE__ */ o("div", { className: "relative z-10 flex flex-1 flex-col justify-between px-5 py-10", children: [
192
- /* @__PURE__ */ o(
193
- F.div,
153
+ backgroundVideo: p,
154
+ backgroundVideoMobile: y,
155
+ imageAlt: N = "",
156
+ className: h,
157
+ ...j
158
+ }) => {
159
+ const A = !!p, F = !!(y || p);
160
+ return /* @__PURE__ */ i("section", { className: l("relative overflow-hidden", h), ...j, children: [
161
+ /* @__PURE__ */ i("div", { className: "hidden md:flex relative min-h-[420px] md:min-h-[420px] lg:min-h-[600px]", children: [
162
+ A ? /* @__PURE__ */ e(
163
+ M,
194
164
  {
195
- initial: { opacity: 0, y: 12 },
196
- animate: { opacity: 1, y: 0 },
197
- transition: { duration: 0.4 },
198
- children: [
199
- /* @__PURE__ */ e(m, { variant: "h2", className: "text-white drop-shadow-lg", as: "h1", children: n || t }),
200
- (i || r) && /* @__PURE__ */ e(m, { variant: "body-lg", className: "mt-3 text-white/90 drop-shadow-lg font-medium leading-relaxed", children: i || r })
201
- ]
165
+ src: p,
166
+ poster: m,
167
+ className: "absolute inset-0 h-full w-full object-cover object-right"
202
168
  }
203
- ),
204
- /* @__PURE__ */ e("div", { className: "flex-1" }),
205
- (s || d) && /* @__PURE__ */ o(
206
- F.div,
169
+ ) : m ? /* @__PURE__ */ e(
170
+ "img",
171
+ {
172
+ src: m,
173
+ alt: N,
174
+ className: "absolute inset-0 h-full w-full object-cover object-right",
175
+ loading: "eager"
176
+ }
177
+ ) : null,
178
+ /* @__PURE__ */ e("div", { className: "absolute inset-0 bg-gradient-to-r from-black/80 via-black/50 to-transparent" }),
179
+ /* @__PURE__ */ e("div", { className: "relative z-10 flex items-center w-full pl-8 lg:pl-16", children: /* @__PURE__ */ i(
180
+ S.div,
207
181
  {
208
- initial: { opacity: 0, y: 12 },
182
+ initial: { opacity: 0, y: 16 },
209
183
  animate: { opacity: 1, y: 0 },
210
- transition: { duration: 0.4, delay: 0.15 },
211
- className: "flex flex-col gap-3",
184
+ transition: { duration: 0.4, ease: "easeOut" },
185
+ className: "px-6 py-16 lg:px-8 lg:py-20 max-w-[500px] lg:max-w-[480px]",
212
186
  children: [
213
- s && /* @__PURE__ */ e(
214
- b,
215
- {
216
- size: "lg",
217
- className: "w-full bg-primary text-primary-foreground hover:bg-primary/90 shadow-lg",
218
- asChild: !0,
219
- children: /* @__PURE__ */ e("a", { href: a, children: s })
220
- }
221
- ),
222
- d && /* @__PURE__ */ e(
223
- b,
224
- {
225
- size: "lg",
226
- variant: "outline",
227
- className: "w-full border-white/40 text-foreground bg-white/90 hover:bg-white shadow-lg",
228
- asChild: !0,
229
- children: /* @__PURE__ */ e("a", { href: h, children: d })
230
- }
231
- )
187
+ /* @__PURE__ */ e(u, { variant: "h1", className: "text-white drop-shadow-lg", as: "h1", children: t }),
188
+ r && /* @__PURE__ */ e(u, { variant: "body-lg", className: "mt-4 text-white/85 drop-shadow-md", children: r }),
189
+ (s || d) && /* @__PURE__ */ i("div", { className: "mt-8 flex flex-wrap gap-4", children: [
190
+ s && /* @__PURE__ */ e(
191
+ b,
192
+ {
193
+ size: "lg",
194
+ className: "bg-primary text-primary-foreground hover:bg-primary/90 shadow-lg",
195
+ asChild: !0,
196
+ children: /* @__PURE__ */ e("a", { href: n, children: s })
197
+ }
198
+ ),
199
+ d && /* @__PURE__ */ e(
200
+ b,
201
+ {
202
+ size: "lg",
203
+ variant: "outline",
204
+ className: "border-white/40 text-foreground bg-white/90 hover:bg-white shadow-lg",
205
+ asChild: !0,
206
+ children: /* @__PURE__ */ e("a", { href: f, children: d })
207
+ }
208
+ )
209
+ ] })
232
210
  ]
233
211
  }
234
- )
212
+ ) })
213
+ ] }),
214
+ /* @__PURE__ */ i("div", { className: "block md:hidden relative min-h-[85vh] flex flex-col", children: [
215
+ F ? /* @__PURE__ */ e(
216
+ M,
217
+ {
218
+ src: y || p,
219
+ poster: g || m,
220
+ className: "absolute inset-0 h-full w-full object-cover object-center"
221
+ }
222
+ ) : g || m ? /* @__PURE__ */ e(
223
+ "img",
224
+ {
225
+ src: g || m,
226
+ alt: N,
227
+ className: "absolute inset-0 h-full w-full object-cover object-center",
228
+ loading: "eager"
229
+ }
230
+ ) : null,
231
+ /* @__PURE__ */ e("div", { className: "absolute inset-0 bg-gradient-to-b from-black/70 via-transparent to-black/80" }),
232
+ /* @__PURE__ */ i("div", { className: "relative z-10 flex flex-1 flex-col justify-between px-5 py-10", children: [
233
+ /* @__PURE__ */ i(
234
+ S.div,
235
+ {
236
+ initial: { opacity: 0, y: 12 },
237
+ animate: { opacity: 1, y: 0 },
238
+ transition: { duration: 0.4 },
239
+ children: [
240
+ /* @__PURE__ */ e(u, { variant: "h2", className: "text-white drop-shadow-lg", as: "h1", children: a || t }),
241
+ (o || r) && /* @__PURE__ */ e(u, { variant: "body-lg", className: "mt-3 text-white/90 drop-shadow-lg font-medium leading-relaxed", children: o || r })
242
+ ]
243
+ }
244
+ ),
245
+ /* @__PURE__ */ e("div", { className: "flex-1" }),
246
+ (s || d) && /* @__PURE__ */ i(
247
+ S.div,
248
+ {
249
+ initial: { opacity: 0, y: 12 },
250
+ animate: { opacity: 1, y: 0 },
251
+ transition: { duration: 0.4, delay: 0.15 },
252
+ className: "flex flex-col gap-3",
253
+ children: [
254
+ s && /* @__PURE__ */ e(
255
+ b,
256
+ {
257
+ size: "lg",
258
+ className: "w-full bg-primary text-primary-foreground hover:bg-primary/90 shadow-lg",
259
+ asChild: !0,
260
+ children: /* @__PURE__ */ e("a", { href: n, children: s })
261
+ }
262
+ ),
263
+ d && /* @__PURE__ */ e(
264
+ b,
265
+ {
266
+ size: "lg",
267
+ variant: "outline",
268
+ className: "w-full border-white/40 text-foreground bg-white/90 hover:bg-white shadow-lg",
269
+ asChild: !0,
270
+ children: /* @__PURE__ */ e("a", { href: f, children: d })
271
+ }
272
+ )
273
+ ]
274
+ }
275
+ )
276
+ ] })
235
277
  ] })
236
- ] })
237
- ] }), Pe = ({
278
+ ] });
279
+ }, Ce = ({
238
280
  heading: t,
239
- text: n,
281
+ text: a,
240
282
  imageSrc: r,
241
- imageAlt: i,
283
+ imageAlt: o,
242
284
  ctaLabel: s,
243
- ctaHref: a = "#",
285
+ ctaHref: n = "#",
244
286
  imagePosition: d = "left",
245
- className: h,
246
- ...u
247
- }) => /* @__PURE__ */ e("section", { className: l("section-padding", h), ...u, children: /* @__PURE__ */ o(
287
+ className: f,
288
+ ...m
289
+ }) => /* @__PURE__ */ e("section", { className: l("section-padding", f), ...m, children: /* @__PURE__ */ i(
248
290
  "div",
249
291
  {
250
292
  className: l(
@@ -256,104 +298,104 @@ const ke = ({
256
298
  "img",
257
299
  {
258
300
  src: r,
259
- alt: i,
301
+ alt: o,
260
302
  className: "h-full w-full object-cover",
261
303
  loading: "lazy"
262
304
  }
263
305
  ) }),
264
- /* @__PURE__ */ o("div", { children: [
265
- /* @__PURE__ */ e(m, { variant: "h2", children: t }),
266
- /* @__PURE__ */ e(m, { variant: "body", color: "muted", className: "mt-4", children: n }),
267
- s && /* @__PURE__ */ e(b, { className: "mt-6", asChild: !0, children: /* @__PURE__ */ e("a", { href: a, children: s }) })
306
+ /* @__PURE__ */ i("div", { children: [
307
+ /* @__PURE__ */ e(u, { variant: "h2", children: t }),
308
+ /* @__PURE__ */ e(u, { variant: "body", color: "muted", className: "mt-4", children: a }),
309
+ s && /* @__PURE__ */ e(b, { className: "mt-6", asChild: !0, children: /* @__PURE__ */ e("a", { href: n, children: s }) })
268
310
  ] })
269
311
  ]
270
312
  }
271
- ) }), ze = ({
313
+ ) }), Be = ({
272
314
  heading: t,
273
- text: n,
315
+ text: a,
274
316
  imageSrc: r,
275
- imageAlt: i = "",
317
+ imageAlt: o = "",
276
318
  tag: s,
277
- href: a,
319
+ href: n,
278
320
  className: d,
279
- ...h
321
+ ...f
280
322
  }) => {
281
- const u = a ? "a" : "div", g = a ? { href: a } : {};
323
+ const m = n ? "a" : "div", g = n ? { href: n } : {};
282
324
  return /* @__PURE__ */ e(
283
325
  "article",
284
326
  {
285
327
  className: l(
286
328
  "group overflow-hidden rounded-2xl border border-border bg-card shadow-sm transition-fast hover:shadow-lg",
287
- a && "cursor-pointer",
329
+ n && "cursor-pointer",
288
330
  d
289
331
  ),
290
- ...h,
291
- children: /* @__PURE__ */ o(u, { ...g, className: "block", children: [
332
+ ...f,
333
+ children: /* @__PURE__ */ i(m, { ...g, className: "block", children: [
292
334
  r && /* @__PURE__ */ e("div", { className: "aspect-video overflow-hidden", children: /* @__PURE__ */ e(
293
335
  "img",
294
336
  {
295
337
  src: r,
296
- alt: i,
338
+ alt: o,
297
339
  className: "h-full w-full object-cover transition-fast group-hover:scale-105",
298
340
  loading: "lazy"
299
341
  }
300
342
  ) }),
301
- /* @__PURE__ */ o("div", { className: "p-6", children: [
302
- s && /* @__PURE__ */ e(m, { variant: "overline", className: "mb-2", children: s }),
303
- /* @__PURE__ */ e(m, { variant: "h4", className: "group-hover:text-primary transition-fast", children: t }),
304
- /* @__PURE__ */ e(m, { variant: "body-sm", color: "muted", className: "mt-2 line-clamp-3", children: n })
343
+ /* @__PURE__ */ i("div", { className: "p-6", children: [
344
+ s && /* @__PURE__ */ e(u, { variant: "overline", className: "mb-2", children: s }),
345
+ /* @__PURE__ */ e(u, { variant: "h4", className: "group-hover:text-primary transition-fast", children: t }),
346
+ /* @__PURE__ */ e(u, { variant: "body-sm", color: "muted", className: "mt-2 line-clamp-3", children: a })
305
347
  ] })
306
348
  ] })
307
349
  }
308
350
  );
309
- }, ce = N.Root, R = w.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ e(N.Item, { ref: r, className: l("border-b", t), ...n }));
310
- R.displayName = "AccordionItem";
311
- const M = w.forwardRef(({ className: t, children: n, ...r }, i) => /* @__PURE__ */ e(N.Header, { className: "flex", children: /* @__PURE__ */ o(
312
- N.Trigger,
351
+ }, ue = w.Root, _ = k.forwardRef(({ className: t, ...a }, r) => /* @__PURE__ */ e(w.Item, { ref: r, className: l("border-b", t), ...a }));
352
+ _.displayName = "AccordionItem";
353
+ const E = k.forwardRef(({ className: t, children: a, ...r }, o) => /* @__PURE__ */ e(w.Header, { className: "flex", children: /* @__PURE__ */ i(
354
+ w.Trigger,
313
355
  {
314
- ref: i,
356
+ ref: o,
315
357
  className: l(
316
358
  "flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
317
359
  t
318
360
  ),
319
361
  ...r,
320
362
  children: [
321
- n,
322
- /* @__PURE__ */ e(j, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
363
+ a,
364
+ /* @__PURE__ */ e(R, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
323
365
  ]
324
366
  }
325
367
  ) }));
326
- M.displayName = N.Trigger.displayName;
327
- const D = w.forwardRef(({ className: t, children: n, ...r }, i) => /* @__PURE__ */ e(
328
- N.Content,
368
+ E.displayName = w.Trigger.displayName;
369
+ const K = k.forwardRef(({ className: t, children: a, ...r }, o) => /* @__PURE__ */ e(
370
+ w.Content,
329
371
  {
330
- ref: i,
372
+ ref: o,
331
373
  className: "overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
332
374
  ...r,
333
- children: /* @__PURE__ */ e("div", { className: l("pb-4 pt-0", t), children: n })
375
+ children: /* @__PURE__ */ e("div", { className: l("pb-4 pt-0", t), children: a })
334
376
  }
335
377
  ));
336
- D.displayName = N.Content.displayName;
337
- const Ce = ({
378
+ K.displayName = w.Content.displayName;
379
+ const je = ({
338
380
  heading: t,
339
- items: n,
381
+ items: a,
340
382
  className: r,
341
- ...i
383
+ ...o
342
384
  }) => {
343
385
  const s = {
344
386
  "@context": "https://schema.org",
345
387
  "@type": "FAQPage",
346
- mainEntity: n.map((a) => ({
388
+ mainEntity: a.map((n) => ({
347
389
  "@type": "Question",
348
- name: a.question,
349
- acceptedAnswer: { "@type": "Answer", text: a.answer }
390
+ name: n.question,
391
+ acceptedAnswer: { "@type": "Answer", text: n.answer }
350
392
  }))
351
393
  };
352
- return /* @__PURE__ */ e("section", { className: l("section-padding", r), ...i, children: /* @__PURE__ */ o("div", { className: "container-narrow", children: [
353
- t && /* @__PURE__ */ e(m, { variant: "h2", className: "mb-8 text-center", children: t }),
354
- /* @__PURE__ */ e(ce, { type: "single", collapsible: !0, className: "w-full", children: n.map((a, d) => /* @__PURE__ */ o(R, { value: `item-${d}`, children: [
355
- /* @__PURE__ */ e(M, { className: "font-display text-left font-semibold", children: a.question }),
356
- /* @__PURE__ */ e(D, { className: "font-body text-muted-foreground", children: a.answer })
394
+ return /* @__PURE__ */ e("section", { className: l("section-padding", r), ...o, children: /* @__PURE__ */ i("div", { className: "container-narrow", children: [
395
+ t && /* @__PURE__ */ e(u, { variant: "h2", className: "mb-8 text-center", children: t }),
396
+ /* @__PURE__ */ e(ue, { type: "single", collapsible: !0, className: "w-full", children: a.map((n, d) => /* @__PURE__ */ i(_, { value: `item-${d}`, children: [
397
+ /* @__PURE__ */ e(E, { className: "font-display text-left font-semibold", children: n.question }),
398
+ /* @__PURE__ */ e(K, { className: "font-body text-muted-foreground", children: n.answer })
357
399
  ] }, d)) }),
358
400
  /* @__PURE__ */ e(
359
401
  "script",
@@ -363,22 +405,22 @@ const Ce = ({
363
405
  }
364
406
  )
365
407
  ] }) });
366
- }, C = w.forwardRef(
367
- ({ className: t, type: n, ...r }, i) => /* @__PURE__ */ e(
408
+ }, C = k.forwardRef(
409
+ ({ className: t, type: a, ...r }, o) => /* @__PURE__ */ e(
368
410
  "input",
369
411
  {
370
- type: n,
412
+ type: a,
371
413
  className: l(
372
414
  "flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
373
415
  t
374
416
  ),
375
- ref: i,
417
+ ref: o,
376
418
  ...r
377
419
  }
378
420
  )
379
421
  );
380
422
  C.displayName = "Input";
381
- const T = w.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ e(
423
+ const W = k.forwardRef(({ className: t, ...a }, r) => /* @__PURE__ */ e(
382
424
  "textarea",
383
425
  {
384
426
  className: l(
@@ -386,44 +428,44 @@ const T = w.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ e(
386
428
  t
387
429
  ),
388
430
  ref: r,
389
- ...n
431
+ ...a
390
432
  }
391
433
  ));
392
- T.displayName = "Textarea";
393
- const me = B("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"), z = w.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ e(H.Root, { ref: r, className: l(me(), t), ...n }));
394
- z.displayName = H.Root.displayName;
395
- const Be = ({
434
+ W.displayName = "Textarea";
435
+ const he = B("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"), z = k.forwardRef(({ className: t, ...a }, r) => /* @__PURE__ */ e(I.Root, { ref: r, className: l(he(), t), ...a }));
436
+ z.displayName = I.Root.displayName;
437
+ const Ae = ({
396
438
  heading: t = "Kontakt",
397
- description: n,
439
+ description: a,
398
440
  onSubmit: r,
399
- className: i,
441
+ className: o,
400
442
  ...s
401
443
  }) => {
402
- const [a, d] = v({ name: "", email: "", message: "" }), [h, u] = v(!1), g = (p) => {
403
- p.preventDefault(), r == null || r(a), u(!0);
444
+ const [n, d] = v({ name: "", email: "", message: "" }), [f, m] = v(!1), g = (p) => {
445
+ p.preventDefault(), r == null || r(n), m(!0);
404
446
  };
405
- return /* @__PURE__ */ e("section", { className: l("section-padding", i), ...s, children: /* @__PURE__ */ o("div", { className: "container-narrow", children: [
406
- /* @__PURE__ */ e(m, { variant: "h2", className: "mb-2", children: t }),
407
- n && /* @__PURE__ */ e(m, { variant: "body", color: "muted", className: "mb-8", children: n }),
408
- h ? /* @__PURE__ */ o("div", { className: "rounded-lg border border-success/30 bg-success/5 p-8 text-center", children: [
409
- /* @__PURE__ */ e(m, { variant: "h4", color: "accent", children: "Vielen Dank für Ihre Nachricht!" }),
410
- /* @__PURE__ */ e(m, { variant: "body-sm", color: "muted", className: "mt-2", children: "Wir melden uns in Kürze bei Ihnen." })
411
- ] }) : /* @__PURE__ */ o("form", { onSubmit: g, className: "space-y-6", children: [
412
- /* @__PURE__ */ o("div", { className: "grid gap-6 sm:grid-cols-2", children: [
413
- /* @__PURE__ */ o("div", { className: "space-y-2", children: [
447
+ return /* @__PURE__ */ e("section", { className: l("section-padding", o), ...s, children: /* @__PURE__ */ i("div", { className: "container-narrow", children: [
448
+ /* @__PURE__ */ e(u, { variant: "h2", className: "mb-2", children: t }),
449
+ a && /* @__PURE__ */ e(u, { variant: "body", color: "muted", className: "mb-8", children: a }),
450
+ f ? /* @__PURE__ */ i("div", { className: "rounded-lg border border-success/30 bg-success/5 p-8 text-center", children: [
451
+ /* @__PURE__ */ e(u, { variant: "h4", color: "accent", children: "Vielen Dank für Ihre Nachricht!" }),
452
+ /* @__PURE__ */ e(u, { variant: "body-sm", color: "muted", className: "mt-2", children: "Wir melden uns in Kürze bei Ihnen." })
453
+ ] }) : /* @__PURE__ */ i("form", { onSubmit: g, className: "space-y-6", children: [
454
+ /* @__PURE__ */ i("div", { className: "grid gap-6 sm:grid-cols-2", children: [
455
+ /* @__PURE__ */ i("div", { className: "space-y-2", children: [
414
456
  /* @__PURE__ */ e(z, { htmlFor: "name", children: "Name" }),
415
457
  /* @__PURE__ */ e(
416
458
  C,
417
459
  {
418
460
  id: "name",
419
461
  required: !0,
420
- value: a.name,
421
- onChange: (p) => d({ ...a, name: p.target.value }),
462
+ value: n.name,
463
+ onChange: (p) => d({ ...n, name: p.target.value }),
422
464
  placeholder: "Max Mustermann"
423
465
  }
424
466
  )
425
467
  ] }),
426
- /* @__PURE__ */ o("div", { className: "space-y-2", children: [
468
+ /* @__PURE__ */ i("div", { className: "space-y-2", children: [
427
469
  /* @__PURE__ */ e(z, { htmlFor: "email", children: "E-Mail" }),
428
470
  /* @__PURE__ */ e(
429
471
  C,
@@ -431,23 +473,23 @@ const Be = ({
431
473
  id: "email",
432
474
  type: "email",
433
475
  required: !0,
434
- value: a.email,
435
- onChange: (p) => d({ ...a, email: p.target.value }),
476
+ value: n.email,
477
+ onChange: (p) => d({ ...n, email: p.target.value }),
436
478
  placeholder: "max@beispiel.de"
437
479
  }
438
480
  )
439
481
  ] })
440
482
  ] }),
441
- /* @__PURE__ */ o("div", { className: "space-y-2", children: [
483
+ /* @__PURE__ */ i("div", { className: "space-y-2", children: [
442
484
  /* @__PURE__ */ e(z, { htmlFor: "message", children: "Nachricht" }),
443
485
  /* @__PURE__ */ e(
444
- T,
486
+ W,
445
487
  {
446
488
  id: "message",
447
489
  required: !0,
448
490
  rows: 5,
449
- value: a.message,
450
- onChange: (p) => d({ ...a, message: p.target.value }),
491
+ value: n.message,
492
+ onChange: (p) => d({ ...n, message: p.target.value }),
451
493
  placeholder: "Ihre Nachricht..."
452
494
  }
453
495
  )
@@ -455,74 +497,74 @@ const Be = ({
455
497
  /* @__PURE__ */ e(b, { type: "submit", size: "lg", children: "Nachricht senden" })
456
498
  ] })
457
499
  ] }) });
458
- }, Ae = ({
500
+ }, Fe = ({
459
501
  brand: t,
460
- items: n,
502
+ items: a,
461
503
  ctaLabel: r,
462
- ctaHref: i = "#",
504
+ ctaHref: o = "#",
463
505
  className: s,
464
- ...a
506
+ ...n
465
507
  }) => {
466
- const [d, h] = v(!1);
467
- return /* @__PURE__ */ o(
508
+ const [d, f] = v(!1);
509
+ return /* @__PURE__ */ i(
468
510
  "header",
469
511
  {
470
512
  className: l(
471
513
  "sticky top-0 z-50 border-b border-primary/20 bg-primary text-primary-foreground backdrop-blur",
472
514
  s
473
515
  ),
474
- ...a,
516
+ ...n,
475
517
  children: [
476
- /* @__PURE__ */ o("nav", { className: "container-wide flex h-16 items-center justify-between px-4 sm:px-6 lg:px-8", "aria-label": "Main", children: [
518
+ /* @__PURE__ */ i("nav", { className: "container-wide flex h-16 items-center justify-between px-4 sm:px-6 lg:px-8", "aria-label": "Main", children: [
477
519
  /* @__PURE__ */ e("a", { href: "/", className: "font-display text-lg font-bold text-primary-foreground", children: t }),
478
- /* @__PURE__ */ o("ul", { className: "hidden items-center gap-1 md:flex", children: [
479
- n.map((u) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
520
+ /* @__PURE__ */ i("ul", { className: "hidden items-center gap-1 md:flex", children: [
521
+ a.map((m) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
480
522
  "a",
481
523
  {
482
- href: u.href,
524
+ href: m.href,
483
525
  className: "rounded-full px-4 py-2 font-body text-sm text-primary-foreground/80 transition-fast hover:bg-primary-foreground/10 hover:text-primary-foreground",
484
- children: u.label
526
+ children: m.label
485
527
  }
486
- ) }, u.href)),
487
- r && /* @__PURE__ */ e("li", { className: "ml-4", children: /* @__PURE__ */ e(b, { size: "sm", className: "bg-primary-foreground text-primary hover:bg-primary-foreground/90", asChild: !0, children: /* @__PURE__ */ e("a", { href: i, children: r }) }) })
528
+ ) }, m.href)),
529
+ r && /* @__PURE__ */ e("li", { className: "ml-4", children: /* @__PURE__ */ e(b, { size: "sm", className: "bg-primary-foreground text-primary hover:bg-primary-foreground/90", asChild: !0, children: /* @__PURE__ */ e("a", { href: o, children: r }) }) })
488
530
  ] }),
489
531
  /* @__PURE__ */ e(
490
532
  "button",
491
533
  {
492
534
  className: "md:hidden rounded-full p-2 text-primary-foreground/80 hover:bg-primary-foreground/10",
493
- onClick: () => h(!d),
535
+ onClick: () => f(!d),
494
536
  "aria-label": "Menu",
495
- children: d ? /* @__PURE__ */ e(U, { size: 20 }) : /* @__PURE__ */ e(Y, { size: 20 })
537
+ children: d ? /* @__PURE__ */ e(ee, { size: 20 }) : /* @__PURE__ */ e(re, { size: 20 })
496
538
  }
497
539
  )
498
540
  ] }),
499
- d && /* @__PURE__ */ e("div", { className: "border-t border-primary-foreground/20 bg-primary md:hidden", children: /* @__PURE__ */ o("ul", { className: "container-wide space-y-1 px-4 py-4", children: [
500
- n.map((u) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
541
+ d && /* @__PURE__ */ e("div", { className: "border-t border-primary-foreground/20 bg-primary md:hidden", children: /* @__PURE__ */ i("ul", { className: "container-wide space-y-1 px-4 py-4", children: [
542
+ a.map((m) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
501
543
  "a",
502
544
  {
503
- href: u.href,
545
+ href: m.href,
504
546
  className: "block rounded-xl px-4 py-2 font-body text-sm text-primary-foreground/80 transition-fast hover:bg-primary-foreground/10 hover:text-primary-foreground",
505
- onClick: () => h(!1),
506
- children: u.label
547
+ onClick: () => f(!1),
548
+ children: m.label
507
549
  }
508
- ) }, u.href)),
509
- r && /* @__PURE__ */ e("li", { className: "pt-2", children: /* @__PURE__ */ e(b, { size: "sm", className: "w-full bg-primary-foreground text-primary hover:bg-primary-foreground/90", asChild: !0, children: /* @__PURE__ */ e("a", { href: i, children: r }) }) })
550
+ ) }, m.href)),
551
+ r && /* @__PURE__ */ e("li", { className: "pt-2", children: /* @__PURE__ */ e(b, { size: "sm", className: "w-full bg-primary-foreground text-primary hover:bg-primary-foreground/90", asChild: !0, children: /* @__PURE__ */ e("a", { href: o, children: r }) }) })
510
552
  ] }) })
511
553
  ]
512
554
  }
513
555
  );
514
- }, Fe = ({
556
+ }, He = ({
515
557
  brand: t,
516
- columns: n,
558
+ columns: a,
517
559
  copyright: r,
518
- className: i,
560
+ className: o,
519
561
  ...s
520
- }) => /* @__PURE__ */ e("footer", { className: l("border-t border-border bg-muted section-padding", i), ...s, children: /* @__PURE__ */ o("div", { className: "container-wide", children: [
521
- /* @__PURE__ */ o("div", { className: "grid gap-8 sm:grid-cols-2 lg:grid-cols-4", children: [
522
- /* @__PURE__ */ e("div", { children: /* @__PURE__ */ e(m, { variant: "h5", children: t }) }),
523
- n.map((a) => /* @__PURE__ */ o("div", { children: [
524
- /* @__PURE__ */ e(m, { variant: "overline", className: "mb-4", children: a.heading }),
525
- /* @__PURE__ */ e("ul", { className: "space-y-2", children: a.links.map((d) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
562
+ }) => /* @__PURE__ */ e("footer", { className: l("border-t border-border bg-muted section-padding", o), ...s, children: /* @__PURE__ */ i("div", { className: "container-wide", children: [
563
+ /* @__PURE__ */ i("div", { className: "grid gap-8 sm:grid-cols-2 lg:grid-cols-4", children: [
564
+ /* @__PURE__ */ e("div", { children: /* @__PURE__ */ e(u, { variant: "h5", children: t }) }),
565
+ a.map((n) => /* @__PURE__ */ i("div", { children: [
566
+ /* @__PURE__ */ e(u, { variant: "overline", className: "mb-4", children: n.heading }),
567
+ /* @__PURE__ */ e("ul", { className: "space-y-2", children: n.links.map((d) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
526
568
  "a",
527
569
  {
528
570
  href: d.href,
@@ -530,50 +572,50 @@ const Be = ({
530
572
  children: d.label
531
573
  }
532
574
  ) }, d.href)) })
533
- ] }, a.heading))
575
+ ] }, n.heading))
534
576
  ] }),
535
- r && /* @__PURE__ */ e("div", { className: "mt-12 border-t border-border pt-6", children: /* @__PURE__ */ e(m, { variant: "caption", children: r }) })
536
- ] }) }), ue = S.forwardRef(
537
- ({ className: t, onSearch: n, ...r }, i) => /* @__PURE__ */ o("div", { className: l("relative", t), children: [
538
- /* @__PURE__ */ e(ee, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }),
577
+ r && /* @__PURE__ */ e("div", { className: "mt-12 border-t border-border pt-6", children: /* @__PURE__ */ e(u, { variant: "caption", children: r }) })
578
+ ] }) }), fe = V.forwardRef(
579
+ ({ className: t, onSearch: a, ...r }, o) => /* @__PURE__ */ i("div", { className: l("relative", t), children: [
580
+ /* @__PURE__ */ e(te, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }),
539
581
  /* @__PURE__ */ e(
540
582
  C,
541
583
  {
542
- ref: i,
584
+ ref: o,
543
585
  className: "pl-10",
544
586
  placeholder: "Suchen...",
545
- onChange: (s) => n == null ? void 0 : n(s.target.value),
587
+ onChange: (s) => a == null ? void 0 : a(s.target.value),
546
588
  ...r
547
589
  }
548
590
  )
549
591
  ] })
550
592
  );
551
- ue.displayName = "SearchBar";
552
- const je = ({ items: t, className: n, ...r }) => {
553
- const i = {
593
+ fe.displayName = "SearchBar";
594
+ const Se = ({ items: t, className: a, ...r }) => {
595
+ const o = {
554
596
  "@context": "https://schema.org",
555
597
  "@type": "BreadcrumbList",
556
- itemListElement: t.map((s, a) => ({
598
+ itemListElement: t.map((s, n) => ({
557
599
  "@type": "ListItem",
558
- position: a + 1,
600
+ position: n + 1,
559
601
  name: s.label,
560
602
  ...s.href ? { item: s.href } : {}
561
603
  }))
562
604
  };
563
- return /* @__PURE__ */ o("nav", { "aria-label": "Breadcrumb", className: l("font-body text-sm", n), ...r, children: [
564
- /* @__PURE__ */ e("ol", { className: "flex items-center gap-1", children: t.map((s, a) => /* @__PURE__ */ o("li", { className: "flex items-center gap-1", children: [
565
- a > 0 && /* @__PURE__ */ e(re, { className: "h-3 w-3 text-muted-foreground" }),
566
- s.href && a < t.length - 1 ? /* @__PURE__ */ e("a", { href: s.href, className: "text-muted-foreground transition-fast hover:text-foreground", children: s.label }) : /* @__PURE__ */ e("span", { className: "text-foreground font-medium", children: s.label })
567
- ] }, a)) }),
605
+ return /* @__PURE__ */ i("nav", { "aria-label": "Breadcrumb", className: l("font-body text-sm", a), ...r, children: [
606
+ /* @__PURE__ */ e("ol", { className: "flex items-center gap-1", children: t.map((s, n) => /* @__PURE__ */ i("li", { className: "flex items-center gap-1", children: [
607
+ n > 0 && /* @__PURE__ */ e(ae, { className: "h-3 w-3 text-muted-foreground" }),
608
+ s.href && n < t.length - 1 ? /* @__PURE__ */ e("a", { href: s.href, className: "text-muted-foreground transition-fast hover:text-foreground", children: s.label }) : /* @__PURE__ */ e("span", { className: "text-foreground font-medium", children: s.label })
609
+ ] }, n)) }),
568
610
  /* @__PURE__ */ e(
569
611
  "script",
570
612
  {
571
613
  type: "application/ld+json",
572
- dangerouslySetInnerHTML: { __html: JSON.stringify(i) }
614
+ dangerouslySetInnerHTML: { __html: JSON.stringify(o) }
573
615
  }
574
616
  )
575
617
  ] });
576
- }, he = [
618
+ }, ge = [
577
619
  {
578
620
  id: "50gb",
579
621
  storage: "50 GB",
@@ -647,25 +689,25 @@ const je = ({ items: t, className: n, ...r }) => {
647
689
  ctaLabel: "Zum Angebot",
648
690
  ctaHref: "#"
649
691
  }
650
- ], Se = ({
692
+ ], Re = ({
651
693
  heading: t = "Cloud-Speicher erweitern",
652
- subheading: n = "Wählen Sie den passenden Tarif für Ihre Bedürfnisse",
653
- plans: r = he,
654
- defaultOpenId: i = "100gb",
694
+ subheading: a = "Wählen Sie den passenden Tarif für Ihre Bedürfnisse",
695
+ plans: r = ge,
696
+ defaultOpenId: o = "100gb",
655
697
  defaultBilling: s = "yearly",
656
- className: a,
698
+ className: n,
657
699
  ...d
658
700
  }) => {
659
- const [h, u] = v(i), [g, p] = v(s), [y, k] = v(!1), f = r.some((c) => c.hidden), _ = y ? r : r.filter((c) => !c.hidden), E = (c) => {
660
- u((x) => x === c ? null : c);
661
- }, K = (c) => g === "yearly" ? c.yearlyPrice : c.monthlyPrice, W = (c) => {
701
+ const [f, m] = v(o), [g, p] = v(s), [y, N] = v(!1), h = r.some((c) => c.hidden), j = y ? r : r.filter((c) => !c.hidden), A = (c) => {
702
+ m((x) => x === c ? null : c);
703
+ }, F = (c) => g === "yearly" ? c.yearlyPrice : c.monthlyPrice, O = (c) => {
662
704
  const x = c.monthlyPrice - c.yearlyPrice;
663
705
  return x > 0 ? Math.round(x / c.monthlyPrice * 100) : 0;
664
706
  };
665
- return /* @__PURE__ */ e("section", { className: l("section-padding", a), ...d, children: /* @__PURE__ */ o("div", { className: "container-narrow", children: [
666
- t && /* @__PURE__ */ e(m, { variant: "h2", className: "mb-2 text-center", children: t }),
667
- n && /* @__PURE__ */ e(m, { variant: "body", tone: "muted", className: "mb-8 text-center", children: n }),
668
- /* @__PURE__ */ e("div", { className: "flex items-center justify-center mb-8", children: /* @__PURE__ */ o("div", { className: "inline-flex rounded-xl border border-border bg-muted p-1 gap-1", children: [
707
+ return /* @__PURE__ */ e("section", { className: l("section-padding", n), ...d, children: /* @__PURE__ */ i("div", { className: "container-narrow", children: [
708
+ t && /* @__PURE__ */ e(u, { variant: "h2", className: "mb-2 text-center", children: t }),
709
+ a && /* @__PURE__ */ e(u, { variant: "body", tone: "muted", className: "mb-8 text-center", children: a }),
710
+ /* @__PURE__ */ e("div", { className: "flex items-center justify-center mb-8", children: /* @__PURE__ */ i("div", { className: "inline-flex rounded-xl border border-border bg-muted p-1 gap-1", children: [
669
711
  /* @__PURE__ */ e(
670
712
  "button",
671
713
  {
@@ -689,9 +731,9 @@ const je = ({ items: t, className: n, ...r }) => {
689
731
  }
690
732
  )
691
733
  ] }) }),
692
- /* @__PURE__ */ e("div", { className: "space-y-3", children: _.map((c) => {
693
- const x = h === c.id, q = K(c), V = W(c);
694
- return /* @__PURE__ */ o(
734
+ /* @__PURE__ */ e("div", { className: "space-y-3", children: j.map((c) => {
735
+ const x = f === c.id, G = F(c), D = O(c);
736
+ return /* @__PURE__ */ i(
695
737
  "div",
696
738
  {
697
739
  className: l(
@@ -699,11 +741,11 @@ const je = ({ items: t, className: n, ...r }) => {
699
741
  x ? "border-primary bg-card shadow-md ring-1 ring-primary/20" : "border-border bg-card hover:border-primary/40 hover:shadow-sm"
700
742
  ),
701
743
  children: [
702
- /* @__PURE__ */ o(
744
+ /* @__PURE__ */ i(
703
745
  "div",
704
746
  {
705
747
  className: "flex items-center gap-4 px-5 py-4 cursor-pointer select-none",
706
- onClick: () => E(c.id),
748
+ onClick: () => A(c.id),
707
749
  children: [
708
750
  /* @__PURE__ */ e(
709
751
  "div",
@@ -712,20 +754,20 @@ const je = ({ items: t, className: n, ...r }) => {
712
754
  "flex h-10 w-10 shrink-0 items-center justify-center rounded-xl transition-fast",
713
755
  x ? "bg-primary text-primary-foreground" : "bg-muted text-muted-foreground"
714
756
  ),
715
- children: /* @__PURE__ */ e(te, { className: "h-5 w-5" })
757
+ children: /* @__PURE__ */ e(ne, { className: "h-5 w-5" })
716
758
  }
717
759
  ),
718
- /* @__PURE__ */ o("div", { className: "flex items-center gap-3 min-w-0", children: [
719
- /* @__PURE__ */ e(m, { variant: "h4", className: "whitespace-nowrap", children: c.storage }),
720
- c.badge && /* @__PURE__ */ o("span", { className: "hidden sm:inline-flex items-center gap-1 rounded-full bg-primary/10 px-2.5 py-0.5 text-xs font-semibold text-primary", children: [
721
- /* @__PURE__ */ e(ae, { className: "h-3 w-3" }),
760
+ /* @__PURE__ */ i("div", { className: "flex items-center gap-3 min-w-0", children: [
761
+ /* @__PURE__ */ e(u, { variant: "h4", className: "whitespace-nowrap", children: c.storage }),
762
+ c.badge && /* @__PURE__ */ i("span", { className: "hidden sm:inline-flex items-center gap-1 rounded-full bg-primary/10 px-2.5 py-0.5 text-xs font-semibold text-primary", children: [
763
+ /* @__PURE__ */ e(oe, { className: "h-3 w-3" }),
722
764
  c.badge
723
765
  ] })
724
766
  ] }),
725
- /* @__PURE__ */ o("div", { className: "ml-auto flex items-center gap-3", children: [
726
- /* @__PURE__ */ o("div", { className: "text-right", children: [
727
- /* @__PURE__ */ o("span", { className: "font-display text-xl font-bold text-foreground", children: [
728
- q.toFixed(2).replace(".", ","),
767
+ /* @__PURE__ */ i("div", { className: "ml-auto flex items-center gap-3", children: [
768
+ /* @__PURE__ */ i("div", { className: "text-right", children: [
769
+ /* @__PURE__ */ i("span", { className: "font-display text-xl font-bold text-foreground", children: [
770
+ G.toFixed(2).replace(".", ","),
729
771
  " €"
730
772
  ] }),
731
773
  /* @__PURE__ */ e("span", { className: "text-sm text-muted-foreground", children: "/Monat" })
@@ -734,13 +776,13 @@ const je = ({ items: t, className: n, ...r }) => {
734
776
  "a",
735
777
  {
736
778
  href: c.ctaHref,
737
- onClick: (A) => A.stopPropagation(),
779
+ onClick: (H) => H.stopPropagation(),
738
780
  className: "hidden sm:inline-flex",
739
781
  children: /* @__PURE__ */ e(b, { size: "sm", variant: "outline", children: c.ctaLabel || "Auswählen" })
740
782
  }
741
783
  ),
742
784
  /* @__PURE__ */ e(
743
- j,
785
+ R,
744
786
  {
745
787
  className: l(
746
788
  "h-5 w-5 shrink-0 text-muted-foreground transition-transform duration-200",
@@ -759,29 +801,29 @@ const je = ({ items: t, className: n, ...r }) => {
759
801
  "grid transition-all duration-200 ease-in-out",
760
802
  x ? "grid-rows-[1fr]" : "grid-rows-[0fr]"
761
803
  ),
762
- children: /* @__PURE__ */ e("div", { className: "overflow-hidden", children: /* @__PURE__ */ o("div", { className: "px-5 pb-5 pt-1", children: [
763
- g === "monthly" && V > 0 && /* @__PURE__ */ o(
764
- m,
804
+ children: /* @__PURE__ */ e("div", { className: "overflow-hidden", children: /* @__PURE__ */ i("div", { className: "px-5 pb-5 pt-1", children: [
805
+ g === "monthly" && D > 0 && /* @__PURE__ */ i(
806
+ u,
765
807
  {
766
808
  variant: "body-sm",
767
809
  className: "mb-4 text-primary font-medium",
768
810
  children: [
769
811
  "Sparen Sie ",
770
- V,
812
+ D,
771
813
  "% im Jahresabo"
772
814
  ]
773
815
  }
774
816
  ),
775
- /* @__PURE__ */ e("ul", { className: "grid grid-cols-1 sm:grid-cols-2 gap-2 mb-5", children: c.features.map((A, O) => /* @__PURE__ */ o(
817
+ /* @__PURE__ */ e("ul", { className: "grid grid-cols-1 sm:grid-cols-2 gap-2 mb-5", children: c.features.map((H, Z) => /* @__PURE__ */ i(
776
818
  "li",
777
819
  {
778
820
  className: "flex items-start gap-2 font-body text-sm text-muted-foreground",
779
821
  children: [
780
- /* @__PURE__ */ e(ne, { className: "h-4 w-4 mt-0.5 shrink-0 text-primary" }),
781
- A
822
+ /* @__PURE__ */ e(ie, { className: "h-4 w-4 mt-0.5 shrink-0 text-primary" }),
823
+ H
782
824
  ]
783
825
  },
784
- O
826
+ Z
785
827
  )) }),
786
828
  c.ctaHref && /* @__PURE__ */ e("a", { href: c.ctaHref, children: /* @__PURE__ */ e(b, { className: "w-full sm:w-auto", size: "lg", children: c.ctaLabel || "Jetzt buchen" }) })
787
829
  ] }) })
@@ -792,17 +834,17 @@ const je = ({ items: t, className: n, ...r }) => {
792
834
  c.id
793
835
  );
794
836
  }) }),
795
- f && /* @__PURE__ */ e("div", { className: "flex justify-center mt-4", children: /* @__PURE__ */ o(
837
+ h && /* @__PURE__ */ e("div", { className: "flex justify-center mt-4", children: /* @__PURE__ */ i(
796
838
  b,
797
839
  {
798
840
  variant: "ghost",
799
841
  size: "sm",
800
- onClick: () => k((c) => !c),
842
+ onClick: () => N((c) => !c),
801
843
  className: "gap-1.5 text-muted-foreground",
802
844
  children: [
803
845
  y ? "Weniger Tarife" : "Weitere Tarife",
804
846
  /* @__PURE__ */ e(
805
- j,
847
+ R,
806
848
  {
807
849
  className: l(
808
850
  "h-4 w-4 transition-transform duration-200",
@@ -813,59 +855,59 @@ const je = ({ items: t, className: n, ...r }) => {
813
855
  ]
814
856
  }
815
857
  ) }),
816
- /* @__PURE__ */ e(m, { variant: "caption", className: "mt-6 block text-center", children: "Alle Preise inkl. MwSt. Kündigung bis 4 Wochen zum Ende der Vertragslaufzeit möglich." })
858
+ /* @__PURE__ */ e(u, { variant: "caption", className: "mt-6 block text-center", children: "Alle Preise inkl. MwSt. Kündigung bis 4 Wochen zum Ende der Vertragslaufzeit möglich." })
817
859
  ] }) });
818
860
  }, Ve = ({
819
861
  items: t,
820
- defaultActiveId: n,
862
+ defaultActiveId: a,
821
863
  variant: r = "underline",
822
- onTabChange: i,
864
+ onTabChange: o,
823
865
  className: s,
824
- ...a
866
+ ...n
825
867
  }) => {
826
- var k;
827
- const [d, h] = v(n || ((k = t[0]) == null ? void 0 : k.id)), u = (f) => {
828
- h(f), i == null || i(f);
829
- }, g = t.find((f) => f.id === d), y = {
868
+ var N;
869
+ const [d, f] = v(a || ((N = t[0]) == null ? void 0 : N.id)), m = (h) => {
870
+ f(h), o == null || o(h);
871
+ }, g = t.find((h) => h.id === d), y = {
830
872
  underline: {
831
873
  list: "border-b border-border",
832
- tab: (f) => l(
874
+ tab: (h) => l(
833
875
  "relative px-4 py-2.5 font-body text-sm font-medium transition-fast -mb-px",
834
- f ? "text-primary border-b-2 border-primary" : "text-muted-foreground hover:text-foreground"
876
+ h ? "text-primary border-b-2 border-primary" : "text-muted-foreground hover:text-foreground"
835
877
  )
836
878
  },
837
879
  pills: {
838
880
  list: "gap-1 bg-muted rounded-lg p-1",
839
- tab: (f) => l(
881
+ tab: (h) => l(
840
882
  "px-4 py-2 rounded-md font-body text-sm font-medium transition-fast",
841
- f ? "bg-background text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground"
883
+ h ? "bg-background text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground"
842
884
  )
843
885
  },
844
886
  enclosed: {
845
887
  list: "border-b border-border",
846
- tab: (f) => l(
888
+ tab: (h) => l(
847
889
  "px-4 py-2.5 font-body text-sm font-medium transition-fast border border-transparent rounded-t-lg -mb-px",
848
- f ? "bg-background text-foreground border-border border-b-background" : "text-muted-foreground hover:text-foreground hover:bg-muted/50"
890
+ h ? "bg-background text-foreground border-border border-b-background" : "text-muted-foreground hover:text-foreground hover:bg-muted/50"
849
891
  )
850
892
  }
851
893
  }[r];
852
- return /* @__PURE__ */ o("div", { className: l("w-full", s), ...a, children: [
894
+ return /* @__PURE__ */ i("div", { className: l("w-full", s), ...n, children: [
853
895
  /* @__PURE__ */ e(
854
896
  "div",
855
897
  {
856
898
  role: "tablist",
857
899
  className: l("flex items-center", y.list),
858
- children: t.map((f) => /* @__PURE__ */ e(
900
+ children: t.map((h) => /* @__PURE__ */ e(
859
901
  "button",
860
902
  {
861
903
  role: "tab",
862
- "aria-selected": f.id === d,
863
- "aria-controls": `tabpanel-${f.id}`,
864
- onClick: () => u(f.id),
865
- className: y.tab(f.id === d),
866
- children: f.label
904
+ "aria-selected": h.id === d,
905
+ "aria-controls": `tabpanel-${h.id}`,
906
+ onClick: () => m(h.id),
907
+ className: y.tab(h.id === d),
908
+ children: h.label
867
909
  },
868
- f.id
910
+ h.id
869
911
  ))
870
912
  }
871
913
  ),
@@ -883,56 +925,56 @@ const je = ({ items: t, className: n, ...r }) => {
883
925
  { id: "default", name: "Core Framework" },
884
926
  { id: "webde", name: "WEB.DE" },
885
927
  { id: "gmx", name: "GMX" }
886
- ], I = J({
928
+ ], q = Q({
887
929
  brand: P[0],
888
930
  setBrand: () => {
889
931
  }
890
- }), fe = () => L(I), He = ({
932
+ }), pe = () => X(q), De = ({
891
933
  children: t,
892
- defaultBrand: n = "default"
934
+ defaultBrand: a = "default"
893
935
  }) => {
894
- const [r, i] = v(
895
- P.find((a) => a.id === n) || P[0]
896
- ), s = $((a) => {
897
- const d = P.find((h) => h.id === a);
898
- d && i(d);
936
+ const [r, o] = v(
937
+ P.find((n) => n.id === a) || P[0]
938
+ ), s = U((n) => {
939
+ const d = P.find((f) => f.id === n);
940
+ d && o(d);
899
941
  }, []);
900
- return Q(() => {
901
- const a = document.documentElement;
902
- return r.id === "default" ? a.removeAttribute("data-brand") : a.setAttribute("data-brand", r.id), () => a.removeAttribute("data-brand");
903
- }, [r]), /* @__PURE__ */ e(I.Provider, { value: { brand: r, setBrand: s }, children: t });
904
- }, Re = ({ className: t }) => {
905
- const { brand: n, setBrand: r } = fe();
906
- return /* @__PURE__ */ e("div", { className: l("flex items-center gap-1 rounded-xl border border-border bg-muted p-1", t), children: P.map((i) => /* @__PURE__ */ e(
942
+ return T(() => {
943
+ const n = document.documentElement;
944
+ return r.id === "default" ? n.removeAttribute("data-brand") : n.setAttribute("data-brand", r.id), () => n.removeAttribute("data-brand");
945
+ }, [r]), /* @__PURE__ */ e(q.Provider, { value: { brand: r, setBrand: s }, children: t });
946
+ }, Me = ({ className: t }) => {
947
+ const { brand: a, setBrand: r } = pe();
948
+ return /* @__PURE__ */ e("div", { className: l("flex items-center gap-1 rounded-xl border border-border bg-muted p-1", t), children: P.map((o) => /* @__PURE__ */ e(
907
949
  "button",
908
950
  {
909
- onClick: () => r(i.id),
951
+ onClick: () => r(o.id),
910
952
  className: l(
911
953
  "rounded-lg px-3 py-1.5 font-body text-xs font-medium transition-fast",
912
- n.id === i.id ? "bg-primary text-primary-foreground shadow-sm" : "text-muted-foreground hover:text-foreground hover:bg-background"
954
+ a.id === o.id ? "bg-primary text-primary-foreground shadow-sm" : "text-muted-foreground hover:text-foreground hover:bg-background"
913
955
  ),
914
- children: i.name
956
+ children: o.name
915
957
  },
916
- i.id
958
+ o.id
917
959
  )) });
918
960
  };
919
961
  export {
920
- de as Badge,
921
- He as BrandProvider,
922
- Re as BrandSwitcher,
923
- je as Breadcrumb,
924
- Be as ContactForm,
925
- ze as ContentCard,
926
- Ce as FaqAccordion,
927
- Fe as Footer,
928
- ke as Hero,
929
- Pe as ImageTextTeaser,
930
- Ae as Navbar,
931
- ue as SearchBar,
962
+ ce as Badge,
963
+ De as BrandProvider,
964
+ Me as BrandSwitcher,
965
+ Se as Breadcrumb,
966
+ Ae as ContactForm,
967
+ Be as ContentCard,
968
+ je as FaqAccordion,
969
+ He as Footer,
970
+ ze as Hero,
971
+ Ce as ImageTextTeaser,
972
+ Fe as Navbar,
973
+ fe as SearchBar,
932
974
  Ve as Tabs,
933
- Se as TariffSelect,
934
- m as Typography,
975
+ Re as TariffSelect,
976
+ u as Typography,
935
977
  P as brands,
936
- fe as useBrand
978
+ pe as useBrand
937
979
  };
938
980
  //# sourceMappingURL=index.mjs.map