cat-framework-core 0.5.0 → 0.5.2

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
@@ -3,12 +3,12 @@ import { clsx as J } from "clsx";
3
3
  import { twMerge as L } from "tailwind-merge";
4
4
  import { cva as B } from "class-variance-authority";
5
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";
6
+ import V, { useRef as $, useState as v, useEffect as I, createContext as Q, useContext as X, useCallback as U } from "react";
7
7
  import { Slot as Y } from "@radix-ui/react-slot";
8
- import { motion as S } from "framer-motion";
8
+ import { motion as R } from "framer-motion";
9
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";
10
+ import { ChevronDown as S, 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 T from "@radix-ui/react-label";
12
12
  function l(...t) {
13
13
  return L(J(t));
14
14
  }
@@ -51,21 +51,21 @@ const se = B("", {
51
51
  "body-lg": "p",
52
52
  caption: "span",
53
53
  overline: "span"
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";
54
+ }, m = V.forwardRef(
55
+ ({ className: t, variant: n = "body", tone: r = "default", as: o, children: s, ...a }, d) => {
56
+ const f = o || de[n] || "p";
57
57
  return /* @__PURE__ */ e(
58
58
  f,
59
59
  {
60
60
  ref: d,
61
- className: l(se({ variant: a, color: r, className: t })),
62
- ...n,
61
+ className: l(se({ variant: n, color: r, className: t })),
62
+ ...a,
63
63
  children: s
64
64
  }
65
65
  );
66
66
  }
67
67
  );
68
- u.displayName = "Typography";
68
+ m.displayName = "Typography";
69
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
  {
@@ -82,7 +82,7 @@ const le = B(
82
82
  defaultVariants: { variant: "default" }
83
83
  }
84
84
  ), ce = V.forwardRef(
85
- ({ className: t, variant: a, ...r }, o) => /* @__PURE__ */ e("span", { ref: o, className: l(le({ variant: a, className: t })), ...r })
85
+ ({ className: t, variant: n, ...r }, o) => /* @__PURE__ */ e("span", { ref: o, className: l(le({ variant: n, className: t })), ...r })
86
86
  );
87
87
  ce.displayName = "Badge";
88
88
  const me = B(
@@ -113,63 +113,62 @@ const me = B(
113
113
  }
114
114
  }
115
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 })
116
+ ({ className: t, variant: n, size: r, asChild: o = !1, ...s }, a) => /* @__PURE__ */ e(o ? Y : "button", { className: l(me({ variant: n, size: r, className: t })), ref: a, ...s })
117
117
  );
118
118
  b.displayName = "Button";
119
119
  const M = ({
120
120
  src: t,
121
- className: a,
122
- poster: r
121
+ className: n
123
122
  }) => {
124
- const o = $(null);
125
- return T(() => {
126
- var s;
127
- (s = o.current) == null || s.play().catch(() => {
123
+ const r = $(null), [o, s] = v(!1);
124
+ return I(() => {
125
+ var a;
126
+ s(!1), (a = r.current) == null || a.play().catch(() => {
128
127
  });
129
128
  }, [t]), /* @__PURE__ */ e(
130
129
  "video",
131
130
  {
132
- ref: o,
131
+ ref: r,
133
132
  src: t,
134
- poster: r,
135
133
  autoPlay: !0,
136
134
  loop: !0,
137
135
  muted: !0,
138
136
  playsInline: !0,
139
- className: a
137
+ onCanPlay: () => s(!0),
138
+ className: l(n, o ? "opacity-100" : "opacity-0"),
139
+ style: { transition: "opacity 0.3s ease-in" }
140
140
  }
141
141
  );
142
- }, ze = ({
142
+ }, Ce = ({
143
143
  headline: t,
144
- headlineMobile: a,
144
+ headlineMobile: n,
145
145
  subheadline: r,
146
146
  subheadlineMobile: o,
147
147
  ctaLabel: s,
148
- ctaHref: n = "#",
148
+ ctaHref: a = "#",
149
149
  secondaryCtaLabel: d,
150
150
  secondaryCtaHref: f = "#",
151
- backgroundImage: m,
152
- backgroundImageMobile: g,
153
- backgroundVideo: p,
151
+ backgroundImage: u,
152
+ backgroundImageMobile: p,
153
+ backgroundVideo: g,
154
154
  backgroundVideoMobile: y,
155
155
  imageAlt: N = "",
156
156
  className: h,
157
157
  ...j
158
158
  }) => {
159
- const A = !!p, F = !!(y || p);
159
+ const A = !!g, F = !!(y || g);
160
160
  return /* @__PURE__ */ i("section", { className: l("relative overflow-hidden", h), ...j, children: [
161
161
  /* @__PURE__ */ i("div", { className: "hidden md:flex relative min-h-[420px] md:min-h-[420px] lg:min-h-[600px]", children: [
162
162
  A ? /* @__PURE__ */ e(
163
163
  M,
164
164
  {
165
- src: p,
166
- poster: m,
165
+ src: g,
167
166
  className: "absolute inset-0 h-full w-full object-cover object-right"
168
167
  }
169
- ) : m ? /* @__PURE__ */ e(
168
+ ) : u ? /* @__PURE__ */ e(
170
169
  "img",
171
170
  {
172
- src: m,
171
+ src: u,
173
172
  alt: N,
174
173
  className: "absolute inset-0 h-full w-full object-cover object-right",
175
174
  loading: "eager"
@@ -177,15 +176,15 @@ const M = ({
177
176
  ) : null,
178
177
  /* @__PURE__ */ e("div", { className: "absolute inset-0 bg-gradient-to-r from-black/80 via-black/50 to-transparent" }),
179
178
  /* @__PURE__ */ e("div", { className: "relative z-10 flex items-center w-full pl-8 lg:pl-16", children: /* @__PURE__ */ i(
180
- S.div,
179
+ R.div,
181
180
  {
182
181
  initial: { opacity: 0, y: 16 },
183
182
  animate: { opacity: 1, y: 0 },
184
183
  transition: { duration: 0.4, ease: "easeOut" },
185
184
  className: "px-6 py-16 lg:px-8 lg:py-20 max-w-[500px] lg:max-w-[480px]",
186
185
  children: [
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 }),
186
+ /* @__PURE__ */ e(m, { variant: "h1", className: "text-white drop-shadow-lg", as: "h1", children: t }),
187
+ r && /* @__PURE__ */ e(m, { variant: "body-lg", className: "mt-4 text-white/85 drop-shadow-md", children: r }),
189
188
  (s || d) && /* @__PURE__ */ i("div", { className: "mt-8 flex flex-wrap gap-4", children: [
190
189
  s && /* @__PURE__ */ e(
191
190
  b,
@@ -193,7 +192,7 @@ const M = ({
193
192
  size: "lg",
194
193
  className: "bg-primary text-primary-foreground hover:bg-primary/90 shadow-lg",
195
194
  asChild: !0,
196
- children: /* @__PURE__ */ e("a", { href: n, children: s })
195
+ children: /* @__PURE__ */ e("a", { href: a, children: s })
197
196
  }
198
197
  ),
199
198
  d && /* @__PURE__ */ e(
@@ -215,14 +214,13 @@ const M = ({
215
214
  F ? /* @__PURE__ */ e(
216
215
  M,
217
216
  {
218
- src: y || p,
219
- poster: g || m,
217
+ src: y || g,
220
218
  className: "absolute inset-0 h-full w-full object-cover object-center"
221
219
  }
222
- ) : g || m ? /* @__PURE__ */ e(
220
+ ) : p || u ? /* @__PURE__ */ e(
223
221
  "img",
224
222
  {
225
- src: g || m,
223
+ src: p || u,
226
224
  alt: N,
227
225
  className: "absolute inset-0 h-full w-full object-cover object-center",
228
226
  loading: "eager"
@@ -231,20 +229,20 @@ const M = ({
231
229
  /* @__PURE__ */ e("div", { className: "absolute inset-0 bg-gradient-to-b from-black/70 via-transparent to-black/80" }),
232
230
  /* @__PURE__ */ i("div", { className: "relative z-10 flex flex-1 flex-col justify-between px-5 py-10", children: [
233
231
  /* @__PURE__ */ i(
234
- S.div,
232
+ R.div,
235
233
  {
236
234
  initial: { opacity: 0, y: 12 },
237
235
  animate: { opacity: 1, y: 0 },
238
236
  transition: { duration: 0.4 },
239
237
  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 })
238
+ /* @__PURE__ */ e(m, { variant: "h2", className: "text-white drop-shadow-lg", as: "h1", children: n || t }),
239
+ (o || r) && /* @__PURE__ */ e(m, { variant: "body-lg", className: "mt-3 text-white/90 drop-shadow-lg font-medium leading-relaxed", children: o || r })
242
240
  ]
243
241
  }
244
242
  ),
245
243
  /* @__PURE__ */ e("div", { className: "flex-1" }),
246
244
  (s || d) && /* @__PURE__ */ i(
247
- S.div,
245
+ R.div,
248
246
  {
249
247
  initial: { opacity: 0, y: 12 },
250
248
  animate: { opacity: 1, y: 0 },
@@ -257,7 +255,7 @@ const M = ({
257
255
  size: "lg",
258
256
  className: "w-full bg-primary text-primary-foreground hover:bg-primary/90 shadow-lg",
259
257
  asChild: !0,
260
- children: /* @__PURE__ */ e("a", { href: n, children: s })
258
+ children: /* @__PURE__ */ e("a", { href: a, children: s })
261
259
  }
262
260
  ),
263
261
  d && /* @__PURE__ */ e(
@@ -276,17 +274,17 @@ const M = ({
276
274
  ] })
277
275
  ] })
278
276
  ] });
279
- }, Ce = ({
277
+ }, ze = ({
280
278
  heading: t,
281
- text: a,
279
+ text: n,
282
280
  imageSrc: r,
283
281
  imageAlt: o,
284
282
  ctaLabel: s,
285
- ctaHref: n = "#",
283
+ ctaHref: a = "#",
286
284
  imagePosition: d = "left",
287
285
  className: f,
288
- ...m
289
- }) => /* @__PURE__ */ e("section", { className: l("section-padding", f), ...m, children: /* @__PURE__ */ i(
286
+ ...u
287
+ }) => /* @__PURE__ */ e("section", { className: l("section-padding", f), ...u, children: /* @__PURE__ */ i(
290
288
  "div",
291
289
  {
292
290
  className: l(
@@ -304,33 +302,33 @@ const M = ({
304
302
  }
305
303
  ) }),
306
304
  /* @__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 }) })
305
+ /* @__PURE__ */ e(m, { variant: "h2", children: t }),
306
+ /* @__PURE__ */ e(m, { variant: "body", color: "muted", className: "mt-4", children: n }),
307
+ s && /* @__PURE__ */ e(b, { className: "mt-6", asChild: !0, children: /* @__PURE__ */ e("a", { href: a, children: s }) })
310
308
  ] })
311
309
  ]
312
310
  }
313
311
  ) }), Be = ({
314
312
  heading: t,
315
- text: a,
313
+ text: n,
316
314
  imageSrc: r,
317
315
  imageAlt: o = "",
318
316
  tag: s,
319
- href: n,
317
+ href: a,
320
318
  className: d,
321
319
  ...f
322
320
  }) => {
323
- const m = n ? "a" : "div", g = n ? { href: n } : {};
321
+ const u = a ? "a" : "div", p = a ? { href: a } : {};
324
322
  return /* @__PURE__ */ e(
325
323
  "article",
326
324
  {
327
325
  className: l(
328
326
  "group overflow-hidden rounded-2xl border border-border bg-card shadow-sm transition-fast hover:shadow-lg",
329
- n && "cursor-pointer",
327
+ a && "cursor-pointer",
330
328
  d
331
329
  ),
332
330
  ...f,
333
- children: /* @__PURE__ */ i(m, { ...g, className: "block", children: [
331
+ children: /* @__PURE__ */ i(u, { ...p, className: "block", children: [
334
332
  r && /* @__PURE__ */ e("div", { className: "aspect-video overflow-hidden", children: /* @__PURE__ */ e(
335
333
  "img",
336
334
  {
@@ -341,16 +339,16 @@ const M = ({
341
339
  }
342
340
  ) }),
343
341
  /* @__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 })
342
+ s && /* @__PURE__ */ e(m, { variant: "overline", className: "mb-2", children: s }),
343
+ /* @__PURE__ */ e(m, { variant: "h4", className: "group-hover:text-primary transition-fast", children: t }),
344
+ /* @__PURE__ */ e(m, { variant: "body-sm", color: "muted", className: "mt-2 line-clamp-3", children: n })
347
345
  ] })
348
346
  ] })
349
347
  }
350
348
  );
351
- }, ue = w.Root, _ = k.forwardRef(({ className: t, ...a }, r) => /* @__PURE__ */ e(w.Item, { ref: r, className: l("border-b", t), ...a }));
349
+ }, ue = w.Root, _ = k.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ e(w.Item, { ref: r, className: l("border-b", t), ...n }));
352
350
  _.displayName = "AccordionItem";
353
- const E = k.forwardRef(({ className: t, children: a, ...r }, o) => /* @__PURE__ */ e(w.Header, { className: "flex", children: /* @__PURE__ */ i(
351
+ const E = k.forwardRef(({ className: t, children: n, ...r }, o) => /* @__PURE__ */ e(w.Header, { className: "flex", children: /* @__PURE__ */ i(
354
352
  w.Trigger,
355
353
  {
356
354
  ref: o,
@@ -360,42 +358,42 @@ const E = k.forwardRef(({ className: t, children: a, ...r }, o) => /* @__PURE__
360
358
  ),
361
359
  ...r,
362
360
  children: [
363
- a,
364
- /* @__PURE__ */ e(R, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
361
+ n,
362
+ /* @__PURE__ */ e(S, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
365
363
  ]
366
364
  }
367
365
  ) }));
368
366
  E.displayName = w.Trigger.displayName;
369
- const K = k.forwardRef(({ className: t, children: a, ...r }, o) => /* @__PURE__ */ e(
367
+ const K = k.forwardRef(({ className: t, children: n, ...r }, o) => /* @__PURE__ */ e(
370
368
  w.Content,
371
369
  {
372
370
  ref: o,
373
371
  className: "overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
374
372
  ...r,
375
- children: /* @__PURE__ */ e("div", { className: l("pb-4 pt-0", t), children: a })
373
+ children: /* @__PURE__ */ e("div", { className: l("pb-4 pt-0", t), children: n })
376
374
  }
377
375
  ));
378
376
  K.displayName = w.Content.displayName;
379
377
  const je = ({
380
378
  heading: t,
381
- items: a,
379
+ items: n,
382
380
  className: r,
383
381
  ...o
384
382
  }) => {
385
383
  const s = {
386
384
  "@context": "https://schema.org",
387
385
  "@type": "FAQPage",
388
- mainEntity: a.map((n) => ({
386
+ mainEntity: n.map((a) => ({
389
387
  "@type": "Question",
390
- name: n.question,
391
- acceptedAnswer: { "@type": "Answer", text: n.answer }
388
+ name: a.question,
389
+ acceptedAnswer: { "@type": "Answer", text: a.answer }
392
390
  }))
393
391
  };
394
392
  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 })
393
+ t && /* @__PURE__ */ e(m, { variant: "h2", className: "mb-8 text-center", children: t }),
394
+ /* @__PURE__ */ e(ue, { type: "single", collapsible: !0, className: "w-full", children: n.map((a, d) => /* @__PURE__ */ i(_, { value: `item-${d}`, children: [
395
+ /* @__PURE__ */ e(E, { className: "font-display text-left font-semibold", children: a.question }),
396
+ /* @__PURE__ */ e(K, { className: "font-body text-muted-foreground", children: a.answer })
399
397
  ] }, d)) }),
400
398
  /* @__PURE__ */ e(
401
399
  "script",
@@ -405,11 +403,11 @@ const je = ({
405
403
  }
406
404
  )
407
405
  ] }) });
408
- }, C = k.forwardRef(
409
- ({ className: t, type: a, ...r }, o) => /* @__PURE__ */ e(
406
+ }, z = k.forwardRef(
407
+ ({ className: t, type: n, ...r }, o) => /* @__PURE__ */ e(
410
408
  "input",
411
409
  {
412
- type: a,
410
+ type: n,
413
411
  className: l(
414
412
  "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",
415
413
  t
@@ -419,8 +417,8 @@ const je = ({
419
417
  }
420
418
  )
421
419
  );
422
- C.displayName = "Input";
423
- const W = k.forwardRef(({ className: t, ...a }, r) => /* @__PURE__ */ e(
420
+ z.displayName = "Input";
421
+ const W = k.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ e(
424
422
  "textarea",
425
423
  {
426
424
  className: l(
@@ -428,68 +426,68 @@ const W = k.forwardRef(({ className: t, ...a }, r) => /* @__PURE__ */ e(
428
426
  t
429
427
  ),
430
428
  ref: r,
431
- ...a
429
+ ...n
432
430
  }
433
431
  ));
434
432
  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;
433
+ const he = B("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"), C = k.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ e(T.Root, { ref: r, className: l(he(), t), ...n }));
434
+ C.displayName = T.Root.displayName;
437
435
  const Ae = ({
438
436
  heading: t = "Kontakt",
439
- description: a,
437
+ description: n,
440
438
  onSubmit: r,
441
439
  className: o,
442
440
  ...s
443
441
  }) => {
444
- const [n, d] = v({ name: "", email: "", message: "" }), [f, m] = v(!1), g = (p) => {
445
- p.preventDefault(), r == null || r(n), m(!0);
442
+ const [a, d] = v({ name: "", email: "", message: "" }), [f, u] = v(!1), p = (g) => {
443
+ g.preventDefault(), r == null || r(a), u(!0);
446
444
  };
447
445
  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 }),
446
+ /* @__PURE__ */ e(m, { variant: "h2", className: "mb-2", children: t }),
447
+ n && /* @__PURE__ */ e(m, { variant: "body", color: "muted", className: "mb-8", children: n }),
450
448
  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: [
449
+ /* @__PURE__ */ e(m, { variant: "h4", color: "accent", children: "Vielen Dank für Ihre Nachricht!" }),
450
+ /* @__PURE__ */ e(m, { variant: "body-sm", color: "muted", className: "mt-2", children: "Wir melden uns in Kürze bei Ihnen." })
451
+ ] }) : /* @__PURE__ */ i("form", { onSubmit: p, className: "space-y-6", children: [
454
452
  /* @__PURE__ */ i("div", { className: "grid gap-6 sm:grid-cols-2", children: [
455
453
  /* @__PURE__ */ i("div", { className: "space-y-2", children: [
456
- /* @__PURE__ */ e(z, { htmlFor: "name", children: "Name" }),
454
+ /* @__PURE__ */ e(C, { htmlFor: "name", children: "Name" }),
457
455
  /* @__PURE__ */ e(
458
- C,
456
+ z,
459
457
  {
460
458
  id: "name",
461
459
  required: !0,
462
- value: n.name,
463
- onChange: (p) => d({ ...n, name: p.target.value }),
460
+ value: a.name,
461
+ onChange: (g) => d({ ...a, name: g.target.value }),
464
462
  placeholder: "Max Mustermann"
465
463
  }
466
464
  )
467
465
  ] }),
468
466
  /* @__PURE__ */ i("div", { className: "space-y-2", children: [
469
- /* @__PURE__ */ e(z, { htmlFor: "email", children: "E-Mail" }),
467
+ /* @__PURE__ */ e(C, { htmlFor: "email", children: "E-Mail" }),
470
468
  /* @__PURE__ */ e(
471
- C,
469
+ z,
472
470
  {
473
471
  id: "email",
474
472
  type: "email",
475
473
  required: !0,
476
- value: n.email,
477
- onChange: (p) => d({ ...n, email: p.target.value }),
474
+ value: a.email,
475
+ onChange: (g) => d({ ...a, email: g.target.value }),
478
476
  placeholder: "max@beispiel.de"
479
477
  }
480
478
  )
481
479
  ] })
482
480
  ] }),
483
481
  /* @__PURE__ */ i("div", { className: "space-y-2", children: [
484
- /* @__PURE__ */ e(z, { htmlFor: "message", children: "Nachricht" }),
482
+ /* @__PURE__ */ e(C, { htmlFor: "message", children: "Nachricht" }),
485
483
  /* @__PURE__ */ e(
486
484
  W,
487
485
  {
488
486
  id: "message",
489
487
  required: !0,
490
488
  rows: 5,
491
- value: n.message,
492
- onChange: (p) => d({ ...n, message: p.target.value }),
489
+ value: a.message,
490
+ onChange: (g) => d({ ...a, message: g.target.value }),
493
491
  placeholder: "Ihre Nachricht..."
494
492
  }
495
493
  )
@@ -499,11 +497,11 @@ const Ae = ({
499
497
  ] }) });
500
498
  }, Fe = ({
501
499
  brand: t,
502
- items: a,
500
+ items: n,
503
501
  ctaLabel: r,
504
502
  ctaHref: o = "#",
505
503
  className: s,
506
- ...n
504
+ ...a
507
505
  }) => {
508
506
  const [d, f] = v(!1);
509
507
  return /* @__PURE__ */ i(
@@ -513,19 +511,19 @@ const Ae = ({
513
511
  "sticky top-0 z-50 border-b border-primary/20 bg-primary text-primary-foreground backdrop-blur",
514
512
  s
515
513
  ),
516
- ...n,
514
+ ...a,
517
515
  children: [
518
516
  /* @__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: [
519
517
  /* @__PURE__ */ e("a", { href: "/", className: "font-display text-lg font-bold text-primary-foreground", children: t }),
520
518
  /* @__PURE__ */ i("ul", { className: "hidden items-center gap-1 md:flex", children: [
521
- a.map((m) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
519
+ n.map((u) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
522
520
  "a",
523
521
  {
524
- href: m.href,
522
+ href: u.href,
525
523
  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",
526
- children: m.label
524
+ children: u.label
527
525
  }
528
- ) }, m.href)),
526
+ ) }, u.href)),
529
527
  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 }) }) })
530
528
  ] }),
531
529
  /* @__PURE__ */ e(
@@ -539,15 +537,15 @@ const Ae = ({
539
537
  )
540
538
  ] }),
541
539
  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(
540
+ n.map((u) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
543
541
  "a",
544
542
  {
545
- href: m.href,
543
+ href: u.href,
546
544
  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",
547
545
  onClick: () => f(!1),
548
- children: m.label
546
+ children: u.label
549
547
  }
550
- ) }, m.href)),
548
+ ) }, u.href)),
551
549
  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 }) }) })
552
550
  ] }) })
553
551
  ]
@@ -555,16 +553,16 @@ const Ae = ({
555
553
  );
556
554
  }, He = ({
557
555
  brand: t,
558
- columns: a,
556
+ columns: n,
559
557
  copyright: r,
560
558
  className: o,
561
559
  ...s
562
560
  }) => /* @__PURE__ */ e("footer", { className: l("border-t border-border bg-muted section-padding", o), ...s, children: /* @__PURE__ */ i("div", { className: "container-wide", children: [
563
561
  /* @__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(
562
+ /* @__PURE__ */ e("div", { children: /* @__PURE__ */ e(m, { variant: "h5", children: t }) }),
563
+ n.map((a) => /* @__PURE__ */ i("div", { children: [
564
+ /* @__PURE__ */ e(m, { variant: "overline", className: "mb-4", children: a.heading }),
565
+ /* @__PURE__ */ e("ul", { className: "space-y-2", children: a.links.map((d) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
568
566
  "a",
569
567
  {
570
568
  href: d.href,
@@ -572,41 +570,41 @@ const Ae = ({
572
570
  children: d.label
573
571
  }
574
572
  ) }, d.href)) })
575
- ] }, n.heading))
573
+ ] }, a.heading))
576
574
  ] }),
577
- r && /* @__PURE__ */ e("div", { className: "mt-12 border-t border-border pt-6", children: /* @__PURE__ */ e(u, { variant: "caption", children: r }) })
575
+ r && /* @__PURE__ */ e("div", { className: "mt-12 border-t border-border pt-6", children: /* @__PURE__ */ e(m, { variant: "caption", children: r }) })
578
576
  ] }) }), fe = V.forwardRef(
579
- ({ className: t, onSearch: a, ...r }, o) => /* @__PURE__ */ i("div", { className: l("relative", t), children: [
577
+ ({ className: t, onSearch: n, ...r }, o) => /* @__PURE__ */ i("div", { className: l("relative", t), children: [
580
578
  /* @__PURE__ */ e(te, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }),
581
579
  /* @__PURE__ */ e(
582
- C,
580
+ z,
583
581
  {
584
582
  ref: o,
585
583
  className: "pl-10",
586
584
  placeholder: "Suchen...",
587
- onChange: (s) => a == null ? void 0 : a(s.target.value),
585
+ onChange: (s) => n == null ? void 0 : n(s.target.value),
588
586
  ...r
589
587
  }
590
588
  )
591
589
  ] })
592
590
  );
593
591
  fe.displayName = "SearchBar";
594
- const Se = ({ items: t, className: a, ...r }) => {
592
+ const Re = ({ items: t, className: n, ...r }) => {
595
593
  const o = {
596
594
  "@context": "https://schema.org",
597
595
  "@type": "BreadcrumbList",
598
- itemListElement: t.map((s, n) => ({
596
+ itemListElement: t.map((s, a) => ({
599
597
  "@type": "ListItem",
600
- position: n + 1,
598
+ position: a + 1,
601
599
  name: s.label,
602
600
  ...s.href ? { item: s.href } : {}
603
601
  }))
604
602
  };
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)) }),
603
+ return /* @__PURE__ */ i("nav", { "aria-label": "Breadcrumb", className: l("font-body text-sm", n), ...r, children: [
604
+ /* @__PURE__ */ e("ol", { className: "flex items-center gap-1", children: t.map((s, a) => /* @__PURE__ */ i("li", { className: "flex items-center gap-1", children: [
605
+ a > 0 && /* @__PURE__ */ e(ae, { className: "h-3 w-3 text-muted-foreground" }),
606
+ 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 })
607
+ ] }, a)) }),
610
608
  /* @__PURE__ */ e(
611
609
  "script",
612
610
  {
@@ -689,32 +687,32 @@ const Se = ({ items: t, className: a, ...r }) => {
689
687
  ctaLabel: "Zum Angebot",
690
688
  ctaHref: "#"
691
689
  }
692
- ], Re = ({
690
+ ], Se = ({
693
691
  heading: t = "Cloud-Speicher erweitern",
694
- subheading: a = "Wählen Sie den passenden Tarif für Ihre Bedürfnisse",
692
+ subheading: n = "Wählen Sie den passenden Tarif für Ihre Bedürfnisse",
695
693
  plans: r = ge,
696
694
  defaultOpenId: o = "100gb",
697
695
  defaultBilling: s = "yearly",
698
- className: n,
696
+ className: a,
699
697
  ...d
700
698
  }) => {
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) => {
699
+ const [f, u] = v(o), [p, g] = v(s), [y, N] = v(!1), h = r.some((c) => c.hidden), j = y ? r : r.filter((c) => !c.hidden), A = (c) => {
700
+ u((x) => x === c ? null : c);
701
+ }, F = (c) => p === "yearly" ? c.yearlyPrice : c.monthlyPrice, O = (c) => {
704
702
  const x = c.monthlyPrice - c.yearlyPrice;
705
703
  return x > 0 ? Math.round(x / c.monthlyPrice * 100) : 0;
706
704
  };
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 }),
705
+ return /* @__PURE__ */ e("section", { className: l("section-padding", a), ...d, children: /* @__PURE__ */ i("div", { className: "container-narrow", children: [
706
+ t && /* @__PURE__ */ e(m, { variant: "h2", className: "mb-2 text-center", children: t }),
707
+ n && /* @__PURE__ */ e(m, { variant: "body", tone: "muted", className: "mb-8 text-center", children: n }),
710
708
  /* @__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: [
711
709
  /* @__PURE__ */ e(
712
710
  "button",
713
711
  {
714
- onClick: () => p("monthly"),
712
+ onClick: () => g("monthly"),
715
713
  className: l(
716
714
  "rounded-lg px-5 py-2.5 font-body text-sm font-medium transition-fast",
717
- g === "monthly" ? "bg-background text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground"
715
+ p === "monthly" ? "bg-background text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground"
718
716
  ),
719
717
  children: "Monatlich kündbar"
720
718
  }
@@ -722,10 +720,10 @@ const Se = ({ items: t, className: a, ...r }) => {
722
720
  /* @__PURE__ */ e(
723
721
  "button",
724
722
  {
725
- onClick: () => p("yearly"),
723
+ onClick: () => g("yearly"),
726
724
  className: l(
727
725
  "rounded-lg px-5 py-2.5 font-body text-sm font-medium transition-fast",
728
- g === "yearly" ? "bg-background text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground"
726
+ p === "yearly" ? "bg-background text-foreground shadow-sm" : "text-muted-foreground hover:text-foreground"
729
727
  ),
730
728
  children: "12 Monate Laufzeit"
731
729
  }
@@ -758,7 +756,7 @@ const Se = ({ items: t, className: a, ...r }) => {
758
756
  }
759
757
  ),
760
758
  /* @__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 }),
759
+ /* @__PURE__ */ e(m, { variant: "h4", className: "whitespace-nowrap", children: c.storage }),
762
760
  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
761
  /* @__PURE__ */ e(oe, { className: "h-3 w-3" }),
764
762
  c.badge
@@ -782,7 +780,7 @@ const Se = ({ items: t, className: a, ...r }) => {
782
780
  }
783
781
  ),
784
782
  /* @__PURE__ */ e(
785
- R,
783
+ S,
786
784
  {
787
785
  className: l(
788
786
  "h-5 w-5 shrink-0 text-muted-foreground transition-transform duration-200",
@@ -802,8 +800,8 @@ const Se = ({ items: t, className: a, ...r }) => {
802
800
  x ? "grid-rows-[1fr]" : "grid-rows-[0fr]"
803
801
  ),
804
802
  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,
803
+ p === "monthly" && D > 0 && /* @__PURE__ */ i(
804
+ m,
807
805
  {
808
806
  variant: "body-sm",
809
807
  className: "mb-4 text-primary font-medium",
@@ -844,7 +842,7 @@ const Se = ({ items: t, className: a, ...r }) => {
844
842
  children: [
845
843
  y ? "Weniger Tarife" : "Weitere Tarife",
846
844
  /* @__PURE__ */ e(
847
- R,
845
+ S,
848
846
  {
849
847
  className: l(
850
848
  "h-4 w-4 transition-transform duration-200",
@@ -855,20 +853,20 @@ const Se = ({ items: t, className: a, ...r }) => {
855
853
  ]
856
854
  }
857
855
  ) }),
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." })
856
+ /* @__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." })
859
857
  ] }) });
860
858
  }, Ve = ({
861
859
  items: t,
862
- defaultActiveId: a,
860
+ defaultActiveId: n,
863
861
  variant: r = "underline",
864
862
  onTabChange: o,
865
863
  className: s,
866
- ...n
864
+ ...a
867
865
  }) => {
868
866
  var N;
869
- const [d, f] = v(a || ((N = t[0]) == null ? void 0 : N.id)), m = (h) => {
867
+ const [d, f] = v(n || ((N = t[0]) == null ? void 0 : N.id)), u = (h) => {
870
868
  f(h), o == null || o(h);
871
- }, g = t.find((h) => h.id === d), y = {
869
+ }, p = t.find((h) => h.id === d), y = {
872
870
  underline: {
873
871
  list: "border-b border-border",
874
872
  tab: (h) => l(
@@ -891,7 +889,7 @@ const Se = ({ items: t, className: a, ...r }) => {
891
889
  )
892
890
  }
893
891
  }[r];
894
- return /* @__PURE__ */ i("div", { className: l("w-full", s), ...n, children: [
892
+ return /* @__PURE__ */ i("div", { className: l("w-full", s), ...a, children: [
895
893
  /* @__PURE__ */ e(
896
894
  "div",
897
895
  {
@@ -903,7 +901,7 @@ const Se = ({ items: t, className: a, ...r }) => {
903
901
  role: "tab",
904
902
  "aria-selected": h.id === d,
905
903
  "aria-controls": `tabpanel-${h.id}`,
906
- onClick: () => m(h.id),
904
+ onClick: () => u(h.id),
907
905
  className: y.tab(h.id === d),
908
906
  children: h.label
909
907
  },
@@ -917,7 +915,7 @@ const Se = ({ items: t, className: a, ...r }) => {
917
915
  role: "tabpanel",
918
916
  id: `tabpanel-${d}`,
919
917
  className: "pt-4",
920
- children: g == null ? void 0 : g.content
918
+ children: p == null ? void 0 : p.content
921
919
  }
922
920
  )
923
921
  ] });
@@ -931,27 +929,27 @@ const Se = ({ items: t, className: a, ...r }) => {
931
929
  }
932
930
  }), pe = () => X(q), De = ({
933
931
  children: t,
934
- defaultBrand: a = "default"
932
+ defaultBrand: n = "default"
935
933
  }) => {
936
934
  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);
935
+ P.find((a) => a.id === n) || P[0]
936
+ ), s = U((a) => {
937
+ const d = P.find((f) => f.id === a);
940
938
  d && o(d);
941
939
  }, []);
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");
940
+ return I(() => {
941
+ const a = document.documentElement;
942
+ return r.id === "default" ? a.removeAttribute("data-brand") : a.setAttribute("data-brand", r.id), () => a.removeAttribute("data-brand");
945
943
  }, [r]), /* @__PURE__ */ e(q.Provider, { value: { brand: r, setBrand: s }, children: t });
946
944
  }, Me = ({ className: t }) => {
947
- const { brand: a, setBrand: r } = pe();
945
+ const { brand: n, setBrand: r } = pe();
948
946
  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(
949
947
  "button",
950
948
  {
951
949
  onClick: () => r(o.id),
952
950
  className: l(
953
951
  "rounded-lg px-3 py-1.5 font-body text-xs font-medium transition-fast",
954
- a.id === o.id ? "bg-primary text-primary-foreground shadow-sm" : "text-muted-foreground hover:text-foreground hover:bg-background"
952
+ n.id === o.id ? "bg-primary text-primary-foreground shadow-sm" : "text-muted-foreground hover:text-foreground hover:bg-background"
955
953
  ),
956
954
  children: o.name
957
955
  },
@@ -962,18 +960,18 @@ export {
962
960
  ce as Badge,
963
961
  De as BrandProvider,
964
962
  Me as BrandSwitcher,
965
- Se as Breadcrumb,
963
+ Re as Breadcrumb,
966
964
  Ae as ContactForm,
967
965
  Be as ContentCard,
968
966
  je as FaqAccordion,
969
967
  He as Footer,
970
- ze as Hero,
971
- Ce as ImageTextTeaser,
968
+ Ce as Hero,
969
+ ze as ImageTextTeaser,
972
970
  Fe as Navbar,
973
971
  fe as SearchBar,
974
972
  Ve as Tabs,
975
- Re as TariffSelect,
976
- u as Typography,
973
+ Se as TariffSelect,
974
+ m as Typography,
977
975
  P as brands,
978
976
  pe as useBrand
979
977
  };