cat-framework-core 0.1.6 → 0.2.1

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
1
  import { jsx as e, jsxs as i } from "react/jsx-runtime";
2
- import { clsx as Z } from "clsx";
3
- import { twMerge as J } from "tailwind-merge";
4
- import { cva as C } from "class-variance-authority";
5
- import * as x from "react";
6
- import S, { useState as y, createContext as L, useContext as $, useCallback as Q, useEffect as X } from "react";
7
- import { Slot as U, createSlot as Y } from "@radix-ui/react-slot";
2
+ import { clsx as G } from "clsx";
3
+ import { twMerge as Z } from "tailwind-merge";
4
+ import { cva as P } from "class-variance-authority";
5
+ import * as v from "react";
6
+ import j, { useState as x, createContext as J, useContext as L, useCallback as Q, useEffect as X } from "react";
7
+ import { Slot as $ } from "@radix-ui/react-slot";
8
8
  import { motion as A } from "framer-motion";
9
- import * as v from "@radix-ui/react-accordion";
10
- import { ChevronDown as F, X as ee, Menu as re, Search as te, ChevronRight as ae, Cloud as ne, Star as ie, Check as oe } from "lucide-react";
11
- import "react-dom";
12
- function c(...t) {
13
- return J(Z(t));
9
+ import * as y from "@radix-ui/react-accordion";
10
+ import { ChevronDown as F, 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";
12
+ function c(...a) {
13
+ return Z(G(a));
14
14
  }
15
- const se = C("", {
15
+ const ie = P("", {
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 se = C("", {
39
39
  variant: "body",
40
40
  color: "default"
41
41
  }
42
- }), de = {
42
+ }), oe = {
43
43
  h1: "h1",
44
44
  h2: "h2",
45
45
  h3: "h3",
@@ -51,22 +51,22 @@ const se = C("", {
51
51
  "body-lg": "p",
52
52
  caption: "span",
53
53
  overline: "span"
54
- }, m = S.forwardRef(
55
- ({ className: t, variant: a = "body", tone: r = "default", as: o, children: s, ...n }, d) => {
56
- const u = o || de[a] || "p";
54
+ }, m = j.forwardRef(
55
+ ({ className: a, variant: n = "body", tone: r = "default", as: o, children: s, ...t }, d) => {
56
+ const u = o || oe[n] || "p";
57
57
  return /* @__PURE__ */ e(
58
58
  u,
59
59
  {
60
60
  ref: d,
61
- className: c(se({ variant: a, color: r, className: t })),
62
- ...n,
61
+ className: c(ie({ variant: n, color: r, className: a })),
62
+ ...t,
63
63
  children: s
64
64
  }
65
65
  );
66
66
  }
67
67
  );
68
68
  m.displayName = "Typography";
69
- const le = C(
69
+ const se = P(
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 le = C(
81
81
  },
82
82
  defaultVariants: { variant: "default" }
83
83
  }
84
- ), ce = S.forwardRef(
85
- ({ className: t, variant: a, ...r }, o) => /* @__PURE__ */ e("span", { ref: o, className: c(le({ variant: a, className: t })), ...r })
84
+ ), de = j.forwardRef(
85
+ ({ className: a, variant: n, ...r }, o) => /* @__PURE__ */ e("span", { ref: o, className: c(se({ variant: n, className: a })), ...r })
86
86
  );
87
- ce.displayName = "Badge";
88
- const me = C(
87
+ de.displayName = "Badge";
88
+ const le = P(
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,17 +112,17 @@ const me = C(
112
112
  size: "default"
113
113
  }
114
114
  }
115
- ), g = x.forwardRef(
116
- ({ className: t, variant: a, size: r, asChild: o = !1, ...s }, n) => /* @__PURE__ */ e(o ? U : "button", { className: c(me({ variant: a, size: r, className: t })), ref: n, ...s })
115
+ ), g = v.forwardRef(
116
+ ({ className: a, variant: n, size: r, asChild: o = !1, ...s }, t) => /* @__PURE__ */ e(o ? $ : "button", { className: c(le({ variant: n, size: r, className: a })), ref: t, ...s })
117
117
  );
118
118
  g.displayName = "Button";
119
- const Fe = ({
120
- headline: t,
121
- headlineMobile: a,
119
+ const ke = ({
120
+ headline: a,
121
+ headlineMobile: n,
122
122
  subheadline: r,
123
123
  subheadlineMobile: o,
124
124
  ctaLabel: s,
125
- ctaHref: n = "#",
125
+ ctaHref: t = "#",
126
126
  secondaryCtaLabel: d,
127
127
  secondaryCtaHref: u = "#",
128
128
  backgroundImage: h,
@@ -150,7 +150,7 @@ const Fe = ({
150
150
  transition: { duration: 0.4, ease: "easeOut" },
151
151
  className: "px-6 py-16 lg:px-8 lg:py-20 max-w-[500px] lg:max-w-[480px]",
152
152
  children: [
153
- /* @__PURE__ */ e(m, { variant: "h1", className: "text-white drop-shadow-lg", as: "h1", children: t }),
153
+ /* @__PURE__ */ e(m, { variant: "h1", className: "text-white drop-shadow-lg", as: "h1", children: a }),
154
154
  r && /* @__PURE__ */ e(m, { variant: "body-lg", className: "mt-4 text-white/85 drop-shadow-md", children: r }),
155
155
  (s || d) && /* @__PURE__ */ i("div", { className: "mt-8 flex flex-wrap gap-4", children: [
156
156
  s && /* @__PURE__ */ e(
@@ -159,7 +159,7 @@ const Fe = ({
159
159
  size: "lg",
160
160
  className: "bg-primary text-primary-foreground hover:bg-primary/90 shadow-lg",
161
161
  asChild: !0,
162
- children: /* @__PURE__ */ e("a", { href: n, children: s })
162
+ children: /* @__PURE__ */ e("a", { href: t, children: s })
163
163
  }
164
164
  ),
165
165
  d && /* @__PURE__ */ e(
@@ -196,7 +196,7 @@ const Fe = ({
196
196
  animate: { opacity: 1, y: 0 },
197
197
  transition: { duration: 0.4 },
198
198
  children: [
199
- /* @__PURE__ */ e(m, { variant: "h2", className: "text-white drop-shadow-lg", as: "h1", children: a || t }),
199
+ /* @__PURE__ */ e(m, { variant: "h2", className: "text-white drop-shadow-lg", as: "h1", children: n || a }),
200
200
  (o || r) && /* @__PURE__ */ e(m, { variant: "body-lg", className: "mt-3 text-white/90 drop-shadow-lg font-medium leading-relaxed", children: o || r })
201
201
  ]
202
202
  }
@@ -216,7 +216,7 @@ const Fe = ({
216
216
  size: "lg",
217
217
  className: "w-full bg-primary text-primary-foreground hover:bg-primary/90 shadow-lg",
218
218
  asChild: !0,
219
- children: /* @__PURE__ */ e("a", { href: n, children: s })
219
+ children: /* @__PURE__ */ e("a", { href: t, children: s })
220
220
  }
221
221
  ),
222
222
  d && /* @__PURE__ */ e(
@@ -234,13 +234,13 @@ const Fe = ({
234
234
  )
235
235
  ] })
236
236
  ] })
237
- ] }), Se = ({
238
- heading: t,
239
- text: a,
237
+ ] }), Ce = ({
238
+ heading: a,
239
+ text: n,
240
240
  imageSrc: r,
241
241
  imageAlt: o,
242
242
  ctaLabel: s,
243
- ctaHref: n = "#",
243
+ ctaHref: t = "#",
244
244
  imagePosition: d = "left",
245
245
  className: u,
246
246
  ...h
@@ -262,29 +262,29 @@ const Fe = ({
262
262
  }
263
263
  ) }),
264
264
  /* @__PURE__ */ i("div", { children: [
265
- /* @__PURE__ */ e(m, { variant: "h2", children: t }),
266
- /* @__PURE__ */ e(m, { variant: "body", color: "muted", className: "mt-4", children: a }),
267
- s && /* @__PURE__ */ e(g, { className: "mt-6", asChild: !0, children: /* @__PURE__ */ e("a", { href: n, children: s }) })
265
+ /* @__PURE__ */ e(m, { variant: "h2", children: a }),
266
+ /* @__PURE__ */ e(m, { variant: "body", color: "muted", className: "mt-4", children: n }),
267
+ s && /* @__PURE__ */ e(g, { className: "mt-6", asChild: !0, children: /* @__PURE__ */ e("a", { href: t, children: s }) })
268
268
  ] })
269
269
  ]
270
270
  }
271
- ) }), je = ({
272
- heading: t,
273
- text: a,
271
+ ) }), Pe = ({
272
+ heading: a,
273
+ text: n,
274
274
  imageSrc: r,
275
275
  imageAlt: o = "",
276
276
  tag: s,
277
- href: n,
277
+ href: t,
278
278
  className: d,
279
279
  ...u
280
280
  }) => {
281
- const h = n ? "a" : "div", p = n ? { href: n } : {};
281
+ const h = t ? "a" : "div", p = t ? { href: t } : {};
282
282
  return /* @__PURE__ */ e(
283
283
  "article",
284
284
  {
285
285
  className: c(
286
286
  "group overflow-hidden rounded-2xl border border-border bg-card shadow-sm transition-fast hover:shadow-lg",
287
- n && "cursor-pointer",
287
+ t && "cursor-pointer",
288
288
  d
289
289
  ),
290
290
  ...u,
@@ -300,60 +300,60 @@ const Fe = ({
300
300
  ) }),
301
301
  /* @__PURE__ */ i("div", { className: "p-6", children: [
302
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: a })
303
+ /* @__PURE__ */ e(m, { variant: "h4", className: "group-hover:text-primary transition-fast", children: a }),
304
+ /* @__PURE__ */ e(m, { variant: "body-sm", color: "muted", className: "mt-2 line-clamp-3", children: n })
305
305
  ] })
306
306
  ] })
307
307
  }
308
308
  );
309
- }, he = v.Root, D = x.forwardRef(({ className: t, ...a }, r) => /* @__PURE__ */ e(v.Item, { ref: r, className: c("border-b", t), ...a }));
310
- D.displayName = "AccordionItem";
311
- const M = x.forwardRef(({ className: t, children: a, ...r }, o) => /* @__PURE__ */ e(v.Header, { className: "flex", children: /* @__PURE__ */ i(
312
- v.Trigger,
309
+ }, ce = y.Root, R = v.forwardRef(({ className: a, ...n }, r) => /* @__PURE__ */ e(y.Item, { ref: r, className: c("border-b", a), ...n }));
310
+ R.displayName = "AccordionItem";
311
+ const S = v.forwardRef(({ className: a, children: n, ...r }, o) => /* @__PURE__ */ e(y.Header, { className: "flex", children: /* @__PURE__ */ i(
312
+ y.Trigger,
313
313
  {
314
314
  ref: o,
315
315
  className: c(
316
316
  "flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
317
- t
317
+ a
318
318
  ),
319
319
  ...r,
320
320
  children: [
321
- a,
321
+ n,
322
322
  /* @__PURE__ */ e(F, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
323
323
  ]
324
324
  }
325
325
  ) }));
326
- M.displayName = v.Trigger.displayName;
327
- const V = x.forwardRef(({ className: t, children: a, ...r }, o) => /* @__PURE__ */ e(
328
- v.Content,
326
+ S.displayName = y.Trigger.displayName;
327
+ const T = v.forwardRef(({ className: a, children: n, ...r }, o) => /* @__PURE__ */ e(
328
+ y.Content,
329
329
  {
330
330
  ref: o,
331
331
  className: "overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
332
332
  ...r,
333
- children: /* @__PURE__ */ e("div", { className: c("pb-4 pt-0", t), children: a })
333
+ children: /* @__PURE__ */ e("div", { className: c("pb-4 pt-0", a), children: n })
334
334
  }
335
335
  ));
336
- V.displayName = v.Content.displayName;
337
- const De = ({
338
- heading: t,
339
- items: a,
336
+ T.displayName = y.Content.displayName;
337
+ const ze = ({
338
+ heading: a,
339
+ items: n,
340
340
  className: r,
341
341
  ...o
342
342
  }) => {
343
343
  const s = {
344
344
  "@context": "https://schema.org",
345
345
  "@type": "FAQPage",
346
- mainEntity: a.map((n) => ({
346
+ mainEntity: n.map((t) => ({
347
347
  "@type": "Question",
348
- name: n.question,
349
- acceptedAnswer: { "@type": "Answer", text: n.answer }
348
+ name: t.question,
349
+ acceptedAnswer: { "@type": "Answer", text: t.answer }
350
350
  }))
351
351
  };
352
352
  return /* @__PURE__ */ e("section", { className: c("section-padding", r), ...o, children: /* @__PURE__ */ i("div", { className: "container-narrow", children: [
353
- t && /* @__PURE__ */ e(m, { variant: "h2", className: "mb-8 text-center", children: t }),
354
- /* @__PURE__ */ e(he, { type: "single", collapsible: !0, className: "w-full", children: a.map((n, d) => /* @__PURE__ */ i(D, { value: `item-${d}`, children: [
355
- /* @__PURE__ */ e(M, { className: "font-display text-left font-semibold", children: n.question }),
356
- /* @__PURE__ */ e(V, { className: "font-body text-muted-foreground", children: n.answer })
353
+ a && /* @__PURE__ */ e(m, { variant: "h2", className: "mb-8 text-center", children: a }),
354
+ /* @__PURE__ */ e(ce, { type: "single", collapsible: !0, className: "w-full", children: n.map((t, d) => /* @__PURE__ */ i(R, { value: `item-${d}`, children: [
355
+ /* @__PURE__ */ e(S, { className: "font-display text-left font-semibold", children: t.question }),
356
+ /* @__PURE__ */ e(T, { className: "font-body text-muted-foreground", children: t.answer })
357
357
  ] }, d)) }),
358
358
  /* @__PURE__ */ e(
359
359
  "script",
@@ -363,85 +363,48 @@ const De = ({
363
363
  }
364
364
  )
365
365
  ] }) });
366
- }, P = x.forwardRef(
367
- ({ className: t, type: a, ...r }, o) => /* @__PURE__ */ e(
366
+ }, C = v.forwardRef(
367
+ ({ className: a, type: n, ...r }, o) => /* @__PURE__ */ e(
368
368
  "input",
369
369
  {
370
- type: a,
370
+ type: n,
371
371
  className: c(
372
372
  "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
- t
373
+ a
374
374
  ),
375
375
  ref: o,
376
376
  ...r
377
377
  }
378
378
  )
379
379
  );
380
- P.displayName = "Input";
381
- const R = x.forwardRef(({ className: t, ...a }, r) => /* @__PURE__ */ e(
380
+ C.displayName = "Input";
381
+ const M = v.forwardRef(({ className: a, ...n }, r) => /* @__PURE__ */ e(
382
382
  "textarea",
383
383
  {
384
384
  className: c(
385
385
  "flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background 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",
386
- t
386
+ a
387
387
  ),
388
388
  ref: r,
389
- ...a
389
+ ...n
390
390
  }
391
391
  ));
392
- R.displayName = "Textarea";
393
- var ue = [
394
- "a",
395
- "button",
396
- "div",
397
- "form",
398
- "h2",
399
- "h3",
400
- "img",
401
- "input",
402
- "label",
403
- "li",
404
- "nav",
405
- "ol",
406
- "p",
407
- "select",
408
- "span",
409
- "svg",
410
- "ul"
411
- ], fe = ue.reduce((t, a) => {
412
- const r = Y(`Primitive.${a}`), o = x.forwardRef((s, n) => {
413
- const { asChild: d, ...u } = s, h = d ? r : a;
414
- return typeof window < "u" && (window[Symbol.for("radix-ui")] = !0), /* @__PURE__ */ e(h, { ...u, ref: n });
415
- });
416
- return o.displayName = `Primitive.${a}`, { ...t, [a]: o };
417
- }, {}), ge = "Label", H = x.forwardRef((t, a) => /* @__PURE__ */ e(
418
- fe.label,
419
- {
420
- ...t,
421
- ref: a,
422
- onMouseDown: (r) => {
423
- var s;
424
- r.target.closest("button, input, select, textarea") || ((s = t.onMouseDown) == null || s.call(t, r), !r.defaultPrevented && r.detail > 1 && r.preventDefault());
425
- }
426
- }
427
- ));
428
- H.displayName = ge;
429
- var T = H;
430
- const pe = C("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"), k = x.forwardRef(({ className: t, ...a }, r) => /* @__PURE__ */ e(T, { ref: r, className: c(pe(), t), ...a }));
431
- k.displayName = T.displayName;
432
- const Me = ({
433
- heading: t = "Kontakt",
434
- description: a,
392
+ M.displayName = "Textarea";
393
+ const me = P("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"), k = v.forwardRef(({ className: a, ...n }, r) => /* @__PURE__ */ e(H.Root, { ref: r, className: c(me(), a), ...n }));
394
+ k.displayName = H.Root.displayName;
395
+ const Be = ({
396
+ heading: a = "Kontakt",
397
+ description: n,
435
398
  onSubmit: r,
436
399
  className: o,
437
400
  ...s
438
401
  }) => {
439
- const [n, d] = y({ name: "", email: "", message: "" }), [u, h] = y(!1), p = (f) => {
440
- f.preventDefault(), r == null || r(n), h(!0);
402
+ const [t, d] = x({ name: "", email: "", message: "" }), [u, h] = x(!1), p = (f) => {
403
+ f.preventDefault(), r == null || r(t), h(!0);
441
404
  };
442
405
  return /* @__PURE__ */ e("section", { className: c("section-padding", o), ...s, children: /* @__PURE__ */ i("div", { className: "container-narrow", children: [
443
- /* @__PURE__ */ e(m, { variant: "h2", className: "mb-2", children: t }),
444
- a && /* @__PURE__ */ e(m, { variant: "body", color: "muted", className: "mb-8", children: a }),
406
+ /* @__PURE__ */ e(m, { variant: "h2", className: "mb-2", children: a }),
407
+ n && /* @__PURE__ */ e(m, { variant: "body", color: "muted", className: "mb-8", children: n }),
445
408
  u ? /* @__PURE__ */ i("div", { className: "rounded-lg border border-success/30 bg-success/5 p-8 text-center", children: [
446
409
  /* @__PURE__ */ e(m, { variant: "h4", color: "accent", children: "Vielen Dank für Ihre Nachricht!" }),
447
410
  /* @__PURE__ */ e(m, { variant: "body-sm", color: "muted", className: "mt-2", children: "Wir melden uns in Kürze bei Ihnen." })
@@ -450,12 +413,12 @@ const Me = ({
450
413
  /* @__PURE__ */ i("div", { className: "space-y-2", children: [
451
414
  /* @__PURE__ */ e(k, { htmlFor: "name", children: "Name" }),
452
415
  /* @__PURE__ */ e(
453
- P,
416
+ C,
454
417
  {
455
418
  id: "name",
456
419
  required: !0,
457
- value: n.name,
458
- onChange: (f) => d({ ...n, name: f.target.value }),
420
+ value: t.name,
421
+ onChange: (f) => d({ ...t, name: f.target.value }),
459
422
  placeholder: "Max Mustermann"
460
423
  }
461
424
  )
@@ -463,13 +426,13 @@ const Me = ({
463
426
  /* @__PURE__ */ i("div", { className: "space-y-2", children: [
464
427
  /* @__PURE__ */ e(k, { htmlFor: "email", children: "E-Mail" }),
465
428
  /* @__PURE__ */ e(
466
- P,
429
+ C,
467
430
  {
468
431
  id: "email",
469
432
  type: "email",
470
433
  required: !0,
471
- value: n.email,
472
- onChange: (f) => d({ ...n, email: f.target.value }),
434
+ value: t.email,
435
+ onChange: (f) => d({ ...t, email: f.target.value }),
473
436
  placeholder: "max@beispiel.de"
474
437
  }
475
438
  )
@@ -478,13 +441,13 @@ const Me = ({
478
441
  /* @__PURE__ */ i("div", { className: "space-y-2", children: [
479
442
  /* @__PURE__ */ e(k, { htmlFor: "message", children: "Nachricht" }),
480
443
  /* @__PURE__ */ e(
481
- R,
444
+ M,
482
445
  {
483
446
  id: "message",
484
447
  required: !0,
485
448
  rows: 5,
486
- value: n.message,
487
- onChange: (f) => d({ ...n, message: f.target.value }),
449
+ value: t.message,
450
+ onChange: (f) => d({ ...t, message: f.target.value }),
488
451
  placeholder: "Ihre Nachricht..."
489
452
  }
490
453
  )
@@ -492,15 +455,15 @@ const Me = ({
492
455
  /* @__PURE__ */ e(g, { type: "submit", size: "lg", children: "Nachricht senden" })
493
456
  ] })
494
457
  ] }) });
495
- }, Ve = ({
496
- brand: t,
497
- items: a,
458
+ }, Ae = ({
459
+ brand: a,
460
+ items: n,
498
461
  ctaLabel: r,
499
462
  ctaHref: o = "#",
500
463
  className: s,
501
- ...n
464
+ ...t
502
465
  }) => {
503
- const [d, u] = y(!1);
466
+ const [d, u] = x(!1);
504
467
  return /* @__PURE__ */ i(
505
468
  "header",
506
469
  {
@@ -508,12 +471,12 @@ const Me = ({
508
471
  "sticky top-0 z-50 border-b border-primary/20 bg-primary text-primary-foreground backdrop-blur",
509
472
  s
510
473
  ),
511
- ...n,
474
+ ...t,
512
475
  children: [
513
476
  /* @__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: [
514
- /* @__PURE__ */ e("a", { href: "/", className: "font-display text-lg font-bold text-primary-foreground", children: t }),
477
+ /* @__PURE__ */ e("a", { href: "/", className: "font-display text-lg font-bold text-primary-foreground", children: a }),
515
478
  /* @__PURE__ */ i("ul", { className: "hidden items-center gap-1 md:flex", children: [
516
- a.map((h) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
479
+ n.map((h) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
517
480
  "a",
518
481
  {
519
482
  href: h.href,
@@ -529,12 +492,12 @@ const Me = ({
529
492
  className: "md:hidden rounded-full p-2 text-primary-foreground/80 hover:bg-primary-foreground/10",
530
493
  onClick: () => u(!d),
531
494
  "aria-label": "Menu",
532
- children: d ? /* @__PURE__ */ e(ee, { size: 20 }) : /* @__PURE__ */ e(re, { size: 20 })
495
+ children: d ? /* @__PURE__ */ e(U, { size: 20 }) : /* @__PURE__ */ e(Y, { size: 20 })
533
496
  }
534
497
  )
535
498
  ] }),
536
499
  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: [
537
- a.map((h) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
500
+ n.map((h) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
538
501
  "a",
539
502
  {
540
503
  href: h.href,
@@ -548,18 +511,18 @@ const Me = ({
548
511
  ]
549
512
  }
550
513
  );
551
- }, Re = ({
552
- brand: t,
553
- columns: a,
514
+ }, Fe = ({
515
+ brand: a,
516
+ columns: n,
554
517
  copyright: r,
555
518
  className: o,
556
519
  ...s
557
520
  }) => /* @__PURE__ */ e("footer", { className: c("border-t border-border bg-muted section-padding", o), ...s, children: /* @__PURE__ */ i("div", { className: "container-wide", children: [
558
521
  /* @__PURE__ */ i("div", { className: "grid gap-8 sm:grid-cols-2 lg:grid-cols-4", children: [
559
- /* @__PURE__ */ e("div", { children: /* @__PURE__ */ e(m, { variant: "h5", children: t }) }),
560
- a.map((n) => /* @__PURE__ */ i("div", { children: [
561
- /* @__PURE__ */ e(m, { variant: "overline", className: "mb-4", children: n.heading }),
562
- /* @__PURE__ */ e("ul", { className: "space-y-2", children: n.links.map((d) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
522
+ /* @__PURE__ */ e("div", { children: /* @__PURE__ */ e(m, { variant: "h5", children: a }) }),
523
+ n.map((t) => /* @__PURE__ */ i("div", { children: [
524
+ /* @__PURE__ */ e(m, { variant: "overline", className: "mb-4", children: t.heading }),
525
+ /* @__PURE__ */ e("ul", { className: "space-y-2", children: t.links.map((d) => /* @__PURE__ */ e("li", { children: /* @__PURE__ */ e(
563
526
  "a",
564
527
  {
565
528
  href: d.href,
@@ -567,41 +530,41 @@ const Me = ({
567
530
  children: d.label
568
531
  }
569
532
  ) }, d.href)) })
570
- ] }, n.heading))
533
+ ] }, t.heading))
571
534
  ] }),
572
535
  r && /* @__PURE__ */ e("div", { className: "mt-12 border-t border-border pt-6", children: /* @__PURE__ */ e(m, { variant: "caption", children: r }) })
573
- ] }) }), be = S.forwardRef(
574
- ({ className: t, onSearch: a, ...r }, o) => /* @__PURE__ */ i("div", { className: c("relative", t), children: [
575
- /* @__PURE__ */ e(te, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }),
536
+ ] }) }), he = j.forwardRef(
537
+ ({ className: a, onSearch: n, ...r }, o) => /* @__PURE__ */ i("div", { className: c("relative", a), children: [
538
+ /* @__PURE__ */ e(ee, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }),
576
539
  /* @__PURE__ */ e(
577
- P,
540
+ C,
578
541
  {
579
542
  ref: o,
580
543
  className: "pl-10",
581
544
  placeholder: "Suchen...",
582
- onChange: (s) => a == null ? void 0 : a(s.target.value),
545
+ onChange: (s) => n == null ? void 0 : n(s.target.value),
583
546
  ...r
584
547
  }
585
548
  )
586
549
  ] })
587
550
  );
588
- be.displayName = "SearchBar";
589
- const He = ({ items: t, className: a, ...r }) => {
551
+ he.displayName = "SearchBar";
552
+ const je = ({ items: a, className: n, ...r }) => {
590
553
  const o = {
591
554
  "@context": "https://schema.org",
592
555
  "@type": "BreadcrumbList",
593
- itemListElement: t.map((s, n) => ({
556
+ itemListElement: a.map((s, t) => ({
594
557
  "@type": "ListItem",
595
- position: n + 1,
558
+ position: t + 1,
596
559
  name: s.label,
597
560
  ...s.href ? { item: s.href } : {}
598
561
  }))
599
562
  };
600
- return /* @__PURE__ */ i("nav", { "aria-label": "Breadcrumb", className: c("font-body text-sm", a), ...r, children: [
601
- /* @__PURE__ */ e("ol", { className: "flex items-center gap-1", children: t.map((s, n) => /* @__PURE__ */ i("li", { className: "flex items-center gap-1", children: [
602
- n > 0 && /* @__PURE__ */ e(ae, { className: "h-3 w-3 text-muted-foreground" }),
603
- 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 })
604
- ] }, n)) }),
563
+ return /* @__PURE__ */ i("nav", { "aria-label": "Breadcrumb", className: c("font-body text-sm", n), ...r, children: [
564
+ /* @__PURE__ */ e("ol", { className: "flex items-center gap-1", children: a.map((s, t) => /* @__PURE__ */ i("li", { className: "flex items-center gap-1", children: [
565
+ t > 0 && /* @__PURE__ */ e(re, { className: "h-3 w-3 text-muted-foreground" }),
566
+ s.href && t < a.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
+ ] }, t)) }),
605
568
  /* @__PURE__ */ e(
606
569
  "script",
607
570
  {
@@ -610,7 +573,7 @@ const He = ({ items: t, className: a, ...r }) => {
610
573
  }
611
574
  )
612
575
  ] });
613
- }, xe = [
576
+ }, ue = [
614
577
  {
615
578
  id: "50gb",
616
579
  storage: "50 GB",
@@ -684,24 +647,24 @@ const He = ({ items: t, className: a, ...r }) => {
684
647
  ctaLabel: "Zum Angebot",
685
648
  ctaHref: "#"
686
649
  }
687
- ], Te = ({
688
- heading: t = "Cloud-Speicher erweitern",
689
- subheading: a = "Wählen Sie den passenden Tarif für Ihre Bedürfnisse",
690
- plans: r = xe,
650
+ ], Ve = ({
651
+ heading: a = "Cloud-Speicher erweitern",
652
+ subheading: n = "Wählen Sie den passenden Tarif für Ihre Bedürfnisse",
653
+ plans: r = ue,
691
654
  defaultOpenId: o = "100gb",
692
655
  defaultBilling: s = "yearly",
693
- className: n,
656
+ className: t,
694
657
  ...d
695
658
  }) => {
696
- const [u, h] = y(o), [p, f] = y(s), [N, z] = y(!1), E = r.some((l) => l.hidden), _ = N ? r : r.filter((l) => !l.hidden), K = (l) => {
659
+ const [u, h] = x(o), [p, f] = x(s), [N, z] = x(!1), I = r.some((l) => l.hidden), _ = N ? r : r.filter((l) => !l.hidden), E = (l) => {
697
660
  h((b) => b === l ? null : l);
698
- }, O = (l) => p === "yearly" ? l.yearlyPrice : l.monthlyPrice, W = (l) => {
661
+ }, K = (l) => p === "yearly" ? l.yearlyPrice : l.monthlyPrice, W = (l) => {
699
662
  const b = l.monthlyPrice - l.yearlyPrice;
700
663
  return b > 0 ? Math.round(b / l.monthlyPrice * 100) : 0;
701
664
  };
702
- return /* @__PURE__ */ e("section", { className: c("section-padding", n), ...d, children: /* @__PURE__ */ i("div", { className: "container-narrow", children: [
703
- t && /* @__PURE__ */ e(m, { variant: "h2", className: "mb-2 text-center", children: t }),
704
- a && /* @__PURE__ */ e(m, { variant: "body", tone: "muted", className: "mb-8 text-center", children: a }),
665
+ return /* @__PURE__ */ e("section", { className: c("section-padding", t), ...d, children: /* @__PURE__ */ i("div", { className: "container-narrow", children: [
666
+ a && /* @__PURE__ */ e(m, { variant: "h2", className: "mb-2 text-center", children: a }),
667
+ n && /* @__PURE__ */ e(m, { variant: "body", tone: "muted", className: "mb-8 text-center", children: n }),
705
668
  /* @__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: [
706
669
  /* @__PURE__ */ e(
707
670
  "button",
@@ -727,7 +690,7 @@ const He = ({ items: t, className: a, ...r }) => {
727
690
  )
728
691
  ] }) }),
729
692
  /* @__PURE__ */ e("div", { className: "space-y-3", children: _.map((l) => {
730
- const b = u === l.id, q = O(l), j = W(l);
693
+ const b = u === l.id, q = K(l), V = W(l);
731
694
  return /* @__PURE__ */ i(
732
695
  "div",
733
696
  {
@@ -740,7 +703,7 @@ const He = ({ items: t, className: a, ...r }) => {
740
703
  "div",
741
704
  {
742
705
  className: "flex items-center gap-4 px-5 py-4 cursor-pointer select-none",
743
- onClick: () => K(l.id),
706
+ onClick: () => E(l.id),
744
707
  children: [
745
708
  /* @__PURE__ */ e(
746
709
  "div",
@@ -749,13 +712,13 @@ const He = ({ items: t, className: a, ...r }) => {
749
712
  "flex h-10 w-10 shrink-0 items-center justify-center rounded-xl transition-fast",
750
713
  b ? "bg-primary text-primary-foreground" : "bg-muted text-muted-foreground"
751
714
  ),
752
- children: /* @__PURE__ */ e(ne, { className: "h-5 w-5" })
715
+ children: /* @__PURE__ */ e(te, { className: "h-5 w-5" })
753
716
  }
754
717
  ),
755
718
  /* @__PURE__ */ i("div", { className: "flex items-center gap-3 min-w-0", children: [
756
719
  /* @__PURE__ */ e(m, { variant: "h4", className: "whitespace-nowrap", children: l.storage }),
757
720
  l.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: [
758
- /* @__PURE__ */ e(ie, { className: "h-3 w-3" }),
721
+ /* @__PURE__ */ e(ae, { className: "h-3 w-3" }),
759
722
  l.badge
760
723
  ] })
761
724
  ] }),
@@ -797,28 +760,28 @@ const He = ({ items: t, className: a, ...r }) => {
797
760
  b ? "grid-rows-[1fr]" : "grid-rows-[0fr]"
798
761
  ),
799
762
  children: /* @__PURE__ */ e("div", { className: "overflow-hidden", children: /* @__PURE__ */ i("div", { className: "px-5 pb-5 pt-1", children: [
800
- p === "monthly" && j > 0 && /* @__PURE__ */ i(
763
+ p === "monthly" && V > 0 && /* @__PURE__ */ i(
801
764
  m,
802
765
  {
803
766
  variant: "body-sm",
804
767
  className: "mb-4 text-primary font-medium",
805
768
  children: [
806
769
  "Sparen Sie ",
807
- j,
770
+ V,
808
771
  "% im Jahresabo"
809
772
  ]
810
773
  }
811
774
  ),
812
- /* @__PURE__ */ e("ul", { className: "grid grid-cols-1 sm:grid-cols-2 gap-2 mb-5", children: l.features.map((B, G) => /* @__PURE__ */ i(
775
+ /* @__PURE__ */ e("ul", { className: "grid grid-cols-1 sm:grid-cols-2 gap-2 mb-5", children: l.features.map((B, O) => /* @__PURE__ */ i(
813
776
  "li",
814
777
  {
815
778
  className: "flex items-start gap-2 font-body text-sm text-muted-foreground",
816
779
  children: [
817
- /* @__PURE__ */ e(oe, { className: "h-4 w-4 mt-0.5 shrink-0 text-primary" }),
780
+ /* @__PURE__ */ e(ne, { className: "h-4 w-4 mt-0.5 shrink-0 text-primary" }),
818
781
  B
819
782
  ]
820
783
  },
821
- G
784
+ O
822
785
  )) }),
823
786
  l.ctaHref && /* @__PURE__ */ e("a", { href: l.ctaHref, children: /* @__PURE__ */ e(g, { className: "w-full sm:w-auto", size: "lg", children: l.ctaLabel || "Jetzt buchen" }) })
824
787
  ] }) })
@@ -829,7 +792,7 @@ const He = ({ items: t, className: a, ...r }) => {
829
792
  l.id
830
793
  );
831
794
  }) }),
832
- E && /* @__PURE__ */ e("div", { className: "flex justify-center mt-4", children: /* @__PURE__ */ i(
795
+ I && /* @__PURE__ */ e("div", { className: "flex justify-center mt-4", children: /* @__PURE__ */ i(
833
796
  g,
834
797
  {
835
798
  variant: "ghost",
@@ -856,33 +819,33 @@ const He = ({ items: t, className: a, ...r }) => {
856
819
  { id: "default", name: "Core Framework" },
857
820
  { id: "webde", name: "WEB.DE" },
858
821
  { id: "gmx", name: "GMX" }
859
- ], I = L({
822
+ ], D = J({
860
823
  brand: w[0],
861
824
  setBrand: () => {
862
825
  }
863
- }), ye = () => $(I), Ie = ({
864
- children: t,
865
- defaultBrand: a = "default"
826
+ }), fe = () => L(D), He = ({
827
+ children: a,
828
+ defaultBrand: n = "default"
866
829
  }) => {
867
- const [r, o] = y(
868
- w.find((n) => n.id === a) || w[0]
869
- ), s = Q((n) => {
870
- const d = w.find((u) => u.id === n);
830
+ const [r, o] = x(
831
+ w.find((t) => t.id === n) || w[0]
832
+ ), s = Q((t) => {
833
+ const d = w.find((u) => u.id === t);
871
834
  d && o(d);
872
835
  }, []);
873
836
  return X(() => {
874
- const n = document.documentElement;
875
- return r.id === "default" ? n.removeAttribute("data-brand") : n.setAttribute("data-brand", r.id), () => n.removeAttribute("data-brand");
876
- }, [r]), /* @__PURE__ */ e(I.Provider, { value: { brand: r, setBrand: s }, children: t });
877
- }, Ee = ({ className: t }) => {
878
- const { brand: a, setBrand: r } = ye();
879
- return /* @__PURE__ */ e("div", { className: c("flex items-center gap-1 rounded-xl border border-border bg-muted p-1", t), children: w.map((o) => /* @__PURE__ */ e(
837
+ const t = document.documentElement;
838
+ return r.id === "default" ? t.removeAttribute("data-brand") : t.setAttribute("data-brand", r.id), () => t.removeAttribute("data-brand");
839
+ }, [r]), /* @__PURE__ */ e(D.Provider, { value: { brand: r, setBrand: s }, children: a });
840
+ }, Re = ({ className: a }) => {
841
+ const { brand: n, setBrand: r } = fe();
842
+ return /* @__PURE__ */ e("div", { className: c("flex items-center gap-1 rounded-xl border border-border bg-muted p-1", a), children: w.map((o) => /* @__PURE__ */ e(
880
843
  "button",
881
844
  {
882
845
  onClick: () => r(o.id),
883
846
  className: c(
884
847
  "rounded-lg px-3 py-1.5 font-body text-xs font-medium transition-fast",
885
- a.id === o.id ? "bg-primary text-primary-foreground shadow-sm" : "text-muted-foreground hover:text-foreground hover:bg-background"
848
+ n.id === o.id ? "bg-primary text-primary-foreground shadow-sm" : "text-muted-foreground hover:text-foreground hover:bg-background"
886
849
  ),
887
850
  children: o.name
888
851
  },
@@ -890,21 +853,21 @@ const He = ({ items: t, className: a, ...r }) => {
890
853
  )) });
891
854
  };
892
855
  export {
893
- ce as Badge,
894
- Ie as BrandProvider,
895
- Ee as BrandSwitcher,
896
- He as Breadcrumb,
897
- Me as ContactForm,
898
- je as ContentCard,
899
- De as FaqAccordion,
900
- Re as Footer,
901
- Fe as Hero,
902
- Se as ImageTextTeaser,
903
- Ve as Navbar,
904
- be as SearchBar,
905
- Te as TariffSelect,
856
+ de as Badge,
857
+ He as BrandProvider,
858
+ Re as BrandSwitcher,
859
+ je as Breadcrumb,
860
+ Be as ContactForm,
861
+ Pe as ContentCard,
862
+ ze as FaqAccordion,
863
+ Fe as Footer,
864
+ ke as Hero,
865
+ Ce as ImageTextTeaser,
866
+ Ae as Navbar,
867
+ he as SearchBar,
868
+ Ve as TariffSelect,
906
869
  m as Typography,
907
870
  w as brands,
908
- ye as useBrand
871
+ fe as useBrand
909
872
  };
910
873
  //# sourceMappingURL=index.mjs.map