@ugurdemirel/landcraft 0.1.22 → 0.1.24

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.
Files changed (121) hide show
  1. package/README.md +13 -8
  2. package/dist/cjs/components/Button.cjs +1 -1
  3. package/dist/cjs/components/Button.cjs.map +1 -1
  4. package/dist/cjs/components/CTA/CTA.cjs +1 -1
  5. package/dist/cjs/components/CTA/CTA.cjs.map +1 -1
  6. package/dist/cjs/components/CTA/parts.cjs +1 -1
  7. package/dist/cjs/components/CTA/parts.cjs.map +1 -1
  8. package/dist/cjs/components/CTA/variants/Panel.cjs +1 -1
  9. package/dist/cjs/components/CTA/variants/Panel.cjs.map +1 -1
  10. package/dist/cjs/components/CTA/variants/Surface.cjs +1 -1
  11. package/dist/cjs/components/CTA/variants/Surface.cjs.map +1 -1
  12. package/dist/cjs/components/Footer/Footer.cjs +1 -1
  13. package/dist/cjs/components/Footer/Footer.cjs.map +1 -1
  14. package/dist/cjs/components/Footer/parts.cjs +1 -1
  15. package/dist/cjs/components/Footer/parts.cjs.map +1 -1
  16. package/dist/cjs/components/Footer/variants/Columns.cjs +2 -0
  17. package/dist/cjs/components/Footer/variants/Columns.cjs.map +1 -0
  18. package/dist/cjs/components/Footer/variants/Editorial.cjs +1 -1
  19. package/dist/cjs/components/Footer/variants/Editorial.cjs.map +1 -1
  20. package/dist/cjs/components/Footer/variants/Minimal.cjs +1 -1
  21. package/dist/cjs/components/Footer/variants/Minimal.cjs.map +1 -1
  22. package/dist/cjs/components/Hero/parts.cjs +1 -1
  23. package/dist/cjs/components/Hero/parts.cjs.map +1 -1
  24. package/dist/cjs/components/Hero/variants/Centered.cjs +1 -1
  25. package/dist/cjs/components/Hero/variants/Centered.cjs.map +1 -1
  26. package/dist/cjs/components/Hero/variants/Parallax.cjs +1 -1
  27. package/dist/cjs/components/Hero/variants/Parallax.cjs.map +1 -1
  28. package/dist/cjs/components/Hero/variants/Split.cjs +1 -1
  29. package/dist/cjs/components/Hero/variants/Split.cjs.map +1 -1
  30. package/dist/cjs/components/Hero/variants/Statement.cjs +1 -1
  31. package/dist/cjs/components/Hero/variants/Statement.cjs.map +1 -1
  32. package/dist/cjs/components/LanguageSwitcher/parts.cjs +1 -1
  33. package/dist/cjs/components/LanguageSwitcher/parts.cjs.map +1 -1
  34. package/dist/cjs/components/MegaMenu/MegaMenu.cjs +1 -1
  35. package/dist/cjs/components/MegaMenu/MegaMenu.cjs.map +1 -1
  36. package/dist/cjs/components/Navbar/Navbar.cjs +1 -1
  37. package/dist/cjs/components/Navbar/Navbar.cjs.map +1 -1
  38. package/dist/cjs/components/Stats/Stats.cjs +1 -1
  39. package/dist/cjs/components/Stats/Stats.cjs.map +1 -1
  40. package/dist/cjs/components/Stats/parts.cjs +1 -1
  41. package/dist/cjs/components/Stats/parts.cjs.map +1 -1
  42. package/dist/cjs/components/Stats/variants/Cells.cjs +1 -1
  43. package/dist/cjs/components/Stats/variants/Cells.cjs.map +1 -1
  44. package/dist/cjs/components/Stats/variants/Divided.cjs +2 -0
  45. package/dist/cjs/components/Stats/variants/Divided.cjs.map +1 -0
  46. package/dist/cjs/components/Stats/variants/Stacked.cjs +2 -0
  47. package/dist/cjs/components/Stats/variants/Stacked.cjs.map +1 -0
  48. package/dist/cjs/components/Stats/variants/Ticker.cjs +1 -1
  49. package/dist/cjs/components/Stats/variants/Ticker.cjs.map +1 -1
  50. package/dist/cjs/utils/surface.cjs +2 -0
  51. package/dist/cjs/utils/surface.cjs.map +1 -0
  52. package/dist/es/components/Button.js +41 -31
  53. package/dist/es/components/Button.js.map +1 -1
  54. package/dist/es/components/CTA/CTA.js +5 -6
  55. package/dist/es/components/CTA/CTA.js.map +1 -1
  56. package/dist/es/components/CTA/parts.js +19 -14
  57. package/dist/es/components/CTA/parts.js.map +1 -1
  58. package/dist/es/components/CTA/variants/Panel.js +15 -17
  59. package/dist/es/components/CTA/variants/Panel.js.map +1 -1
  60. package/dist/es/components/CTA/variants/Surface.js +21 -11
  61. package/dist/es/components/CTA/variants/Surface.js.map +1 -1
  62. package/dist/es/components/Footer/Footer.js +5 -5
  63. package/dist/es/components/Footer/Footer.js.map +1 -1
  64. package/dist/es/components/Footer/parts.js +21 -20
  65. package/dist/es/components/Footer/parts.js.map +1 -1
  66. package/dist/es/components/Footer/variants/Columns.js +76 -0
  67. package/dist/es/components/Footer/variants/Columns.js.map +1 -0
  68. package/dist/es/components/Footer/variants/Editorial.js +68 -35
  69. package/dist/es/components/Footer/variants/Editorial.js.map +1 -1
  70. package/dist/es/components/Footer/variants/Minimal.js +50 -16
  71. package/dist/es/components/Footer/variants/Minimal.js.map +1 -1
  72. package/dist/es/components/Hero/parts.js +13 -11
  73. package/dist/es/components/Hero/parts.js.map +1 -1
  74. package/dist/es/components/Hero/variants/Centered.js +29 -17
  75. package/dist/es/components/Hero/variants/Centered.js.map +1 -1
  76. package/dist/es/components/Hero/variants/Parallax.js +23 -23
  77. package/dist/es/components/Hero/variants/Parallax.js.map +1 -1
  78. package/dist/es/components/Hero/variants/Split.js +35 -23
  79. package/dist/es/components/Hero/variants/Split.js.map +1 -1
  80. package/dist/es/components/Hero/variants/Statement.js +28 -23
  81. package/dist/es/components/Hero/variants/Statement.js.map +1 -1
  82. package/dist/es/components/LanguageSwitcher/parts.js +44 -44
  83. package/dist/es/components/LanguageSwitcher/parts.js.map +1 -1
  84. package/dist/es/components/MegaMenu/MegaMenu.js +131 -126
  85. package/dist/es/components/MegaMenu/MegaMenu.js.map +1 -1
  86. package/dist/es/components/Navbar/Navbar.js +110 -92
  87. package/dist/es/components/Navbar/Navbar.js.map +1 -1
  88. package/dist/es/components/Stats/Stats.js +8 -8
  89. package/dist/es/components/Stats/Stats.js.map +1 -1
  90. package/dist/es/components/Stats/parts.js +37 -17
  91. package/dist/es/components/Stats/parts.js.map +1 -1
  92. package/dist/es/components/Stats/variants/Cells.js +46 -18
  93. package/dist/es/components/Stats/variants/Cells.js.map +1 -1
  94. package/dist/es/components/Stats/variants/Divided.js +45 -0
  95. package/dist/es/components/Stats/variants/Divided.js.map +1 -0
  96. package/dist/es/components/Stats/variants/Stacked.js +40 -0
  97. package/dist/es/components/Stats/variants/Stacked.js.map +1 -0
  98. package/dist/es/components/Stats/variants/Ticker.js +44 -23
  99. package/dist/es/components/Stats/variants/Ticker.js.map +1 -1
  100. package/dist/es/utils/surface.js +16 -0
  101. package/dist/es/utils/surface.js.map +1 -0
  102. package/dist/index.d.ts +49 -10
  103. package/dist/styles.css +169 -114
  104. package/dist/theme.css +27 -0
  105. package/package.json +1 -1
  106. package/dist/cjs/components/CTA/variants/Inverse.cjs +0 -2
  107. package/dist/cjs/components/CTA/variants/Inverse.cjs.map +0 -1
  108. package/dist/cjs/components/Footer/variants/Classic.cjs +0 -2
  109. package/dist/cjs/components/Footer/variants/Classic.cjs.map +0 -1
  110. package/dist/cjs/components/Stats/variants/Editorial.cjs +0 -2
  111. package/dist/cjs/components/Stats/variants/Editorial.cjs.map +0 -1
  112. package/dist/cjs/components/Stats/variants/Hairline.cjs +0 -2
  113. package/dist/cjs/components/Stats/variants/Hairline.cjs.map +0 -1
  114. package/dist/es/components/CTA/variants/Inverse.js +0 -42
  115. package/dist/es/components/CTA/variants/Inverse.js.map +0 -1
  116. package/dist/es/components/Footer/variants/Classic.js +0 -43
  117. package/dist/es/components/Footer/variants/Classic.js.map +0 -1
  118. package/dist/es/components/Stats/variants/Editorial.js +0 -32
  119. package/dist/es/components/Stats/variants/Editorial.js.map +0 -1
  120. package/dist/es/components/Stats/variants/Hairline.js +0 -25
  121. package/dist/es/components/Stats/variants/Hairline.js.map +0 -1
@@ -1,9 +1,10 @@
1
1
  "use client";
2
2
  import { jsx as r, jsxs as a } from "react/jsx-runtime";
3
- import { useId as R, useState as w } from "react";
4
- import { cn as l } from "../../utils/cn.js";
5
- import { ChevronDown as B, X as U, Menu as V } from "../../icons.js";
6
- const P = "text-on-secondary", b = "text-foreground", W = {
3
+ import { useId as R, useState as k } from "react";
4
+ import { cn as t } from "../../utils/cn.js";
5
+ import { ChevronDown as E, X as U, Menu as V } from "../../icons.js";
6
+ import { emphasisSurfaceStyle as W } from "../../utils/surface.js";
7
+ const Y = {
7
8
  classic: {
8
9
  shell: "border-b border-border bg-background/85 backdrop-blur-md supports-[backdrop-filter]:bg-background/75",
9
10
  bar: "mx-auto max-w-6xl px-5 sm:px-8",
@@ -16,9 +17,9 @@ const P = "text-on-secondary", b = "text-foreground", W = {
16
17
  columnLink: "hover:bg-surface-strong",
17
18
  linkDescription: "text-muted-foreground",
18
19
  mobilePanel: "border-t border-border bg-background",
19
- mobileButton: `${b} hover:bg-surface`,
20
+ mobileButton: "text-foreground hover:bg-surface",
20
21
  mobileLink: "text-muted-foreground hover:bg-surface hover:text-foreground",
21
- brandText: b,
22
+ brandText: "text-foreground",
22
23
  brandDot: "bg-foreground"
23
24
  },
24
25
  floating: {
@@ -33,100 +34,101 @@ const P = "text-on-secondary", b = "text-foreground", W = {
33
34
  columnLink: "hover:bg-surface-strong",
34
35
  linkDescription: "text-muted-foreground",
35
36
  mobilePanel: "mx-3 mb-3 max-w-5xl overflow-hidden rounded-b-xl border border-border bg-surface",
36
- mobileButton: `${b} hover:bg-surface`,
37
+ mobileButton: "text-foreground hover:bg-surface",
37
38
  mobileLink: "text-muted-foreground hover:bg-surface hover:text-foreground",
38
- brandText: b,
39
+ brandText: "text-foreground",
39
40
  brandDot: "bg-foreground"
40
- },
41
- inverse: {
42
- shell: "border-b border-white/10 bg-[#101010]/85 backdrop-blur-md",
43
- bar: "mx-auto max-w-6xl px-5 sm:px-8",
44
- header: "px-0",
45
- trigger: "text-on-secondary/60 hover:text-on-secondary hover:bg-white/10",
46
- triggerOpen: "bg-white/10 text-on-secondary",
47
- badge: "bg-white/15 text-on-secondary",
48
- panel: "border-white/10 bg-[#161616]",
49
- columnTitle: "text-on-secondary/45",
50
- columnLink: "hover:bg-white/10",
51
- linkDescription: "text-on-secondary/50",
52
- mobilePanel: "border-t border-white/10 bg-[#101010]",
53
- mobileButton: `${P} hover:bg-white/10`,
54
- mobileLink: "text-on-secondary/70 hover:bg-white/10 hover:text-on-secondary",
55
- brandText: P,
56
- brandDot: "bg-on-secondary"
57
41
  }
58
- }, Y = ({
59
- className: E,
60
- variant: k = "classic",
61
- brand: p,
62
- logo: _,
42
+ }, Z = {
43
+ shell: "",
44
+ bar: "mx-auto max-w-6xl px-5 sm:px-8",
45
+ header: "px-0",
46
+ trigger: "text-current/70 hover:text-current hover:bg-current/10",
47
+ triggerOpen: "bg-current/15 text-current",
48
+ badge: "bg-current/20 text-current",
49
+ panel: "border-border bg-surface shadow-raised",
50
+ columnTitle: "text-muted-foreground/70",
51
+ columnLink: "hover:bg-surface-strong",
52
+ linkDescription: "text-muted-foreground",
53
+ mobilePanel: "border-t border-current/15",
54
+ mobileButton: "text-current hover:bg-current/10",
55
+ mobileLink: "text-current/70 hover:bg-current/10 hover:text-current",
56
+ brandText: "text-current",
57
+ brandDot: "bg-current"
58
+ }, K = ({
59
+ className: _,
60
+ variant: w = "classic",
61
+ brand: m,
62
+ logo: I,
63
63
  logoSrc: C,
64
- logoAlt: I,
64
+ logoAlt: $,
65
65
  logoClassName: z,
66
66
  brandHref: A = "#",
67
- items: g,
68
- actions: m,
67
+ items: b,
68
+ actions: g,
69
69
  cta: f,
70
- languageSwitcher: h,
70
+ languageSwitcher: x,
71
71
  sticky: F = !0,
72
- LinkComponent: X,
73
- onKeyDown: x,
74
- ...q
72
+ background: i,
73
+ LinkComponent: S,
74
+ onKeyDown: h,
75
+ style: L,
76
+ ...X
75
77
  }) => {
76
- const G = R(), i = X ?? "a", [L, c] = w(null), [u, v] = w(!1), [y, M] = w(null), t = W[k], H = () => c(null), N = () => {
77
- c(null), v(!1), M(null);
78
- }, O = (e) => `${G}-panel-${e}`, T = _ ?? (C ? /* @__PURE__ */ r(
78
+ const q = R(), c = S ?? "a", [M, u] = k(null), [p, v] = k(!1), [N, O] = k(null), o = i ? Z : Y[w], G = !i && w === "floating", H = () => u(null), y = () => {
79
+ u(null), v(!1), O(null);
80
+ }, T = (e) => `${q}-panel-${e}`, D = I ?? (C ? /* @__PURE__ */ r(
79
81
  "img",
80
82
  {
81
83
  src: C,
82
- alt: I ?? (typeof p == "string" ? p : "Logo"),
83
- className: l("h-7 w-auto", z)
84
+ alt: $ ?? (typeof m == "string" ? m : "Logo"),
85
+ className: t("h-7 w-auto", z)
84
86
  }
85
- ) : null), J = T ? /* @__PURE__ */ r("span", { className: "flex items-center", children: T }) : /* @__PURE__ */ a("span", { className: l("flex items-center gap-2 font-display text-[17px] font-bold tracking-tight", t.brandText), children: [
86
- /* @__PURE__ */ r("span", { "aria-hidden": !0, className: l("inline-block h-2.5 w-2.5 rounded-sm", t.brandDot) }),
87
- p
88
- ] }), D = l(
87
+ ) : null), J = D ? /* @__PURE__ */ r("span", { className: "flex items-center", children: D }) : /* @__PURE__ */ a("span", { className: t("flex items-center gap-2 font-display text-[17px] font-bold tracking-tight", o.brandText), children: [
88
+ /* @__PURE__ */ r("span", { "aria-hidden": !0, className: t("inline-block h-2.5 w-2.5 rounded-sm", o.brandDot) }),
89
+ m
90
+ ] }), j = t(
89
91
  "flex items-center gap-1.5 rounded-md px-3 py-2 text-sm font-medium transition-colors duration-150",
90
- t.trigger
91
- ), $ = (e) => {
92
- var o;
92
+ o.trigger
93
+ ), B = (e) => {
94
+ var l;
93
95
  return /* @__PURE__ */ r(
94
96
  "div",
95
97
  {
96
- className: l(
98
+ className: t(
97
99
  "grid gap-x-10 gap-y-8 sm:grid-cols-2",
98
100
  e.featured ? "" : "lg:grid-cols-3"
99
101
  ),
100
- children: (o = e.columns) == null ? void 0 : o.map((n, s) => /* @__PURE__ */ a("div", { children: [
102
+ children: (l = e.columns) == null ? void 0 : l.map((n, s) => /* @__PURE__ */ a("div", { children: [
101
103
  n.title ? /* @__PURE__ */ r(
102
104
  "h4",
103
105
  {
104
- className: l(
106
+ className: t(
105
107
  "text-xs font-semibold uppercase tracking-[0.14em]",
106
- t.columnTitle
108
+ o.columnTitle
107
109
  ),
108
110
  children: n.title
109
111
  }
110
112
  ) : null,
111
- /* @__PURE__ */ r("ul", { className: l(n.title && "mt-3", "space-y-0.5"), children: n.links.map((d) => /* @__PURE__ */ r("li", { children: /* @__PURE__ */ a(
112
- i,
113
+ /* @__PURE__ */ r("ul", { className: t(n.title && "mt-3", "space-y-0.5"), children: n.links.map((d) => /* @__PURE__ */ r("li", { children: /* @__PURE__ */ a(
114
+ c,
113
115
  {
114
116
  href: d.href,
115
- onClick: N,
117
+ onClick: y,
116
118
  target: d.external ? "_blank" : void 0,
117
119
  rel: d.external ? "noopener noreferrer" : void 0,
118
- className: l(
120
+ className: t(
119
121
  "-mx-2 block rounded-md px-2 py-2 transition-colors duration-150",
120
- t.columnLink
122
+ o.columnLink
121
123
  ),
122
124
  children: [
123
125
  /* @__PURE__ */ r("span", { className: "block text-sm font-medium text-foreground", children: d.label }),
124
126
  d.description ? /* @__PURE__ */ r(
125
127
  "span",
126
128
  {
127
- className: l(
129
+ className: t(
128
130
  "mt-0.5 block text-[13px] leading-snug",
129
- t.linkDescription
131
+ o.linkDescription
130
132
  ),
131
133
  children: d.description
132
134
  }
@@ -137,20 +139,20 @@ const P = "text-on-secondary", b = "text-foreground", W = {
137
139
  ] }, n.title ?? s))
138
140
  }
139
141
  );
140
- }, j = (e, o = !1) => {
142
+ }, P = (e, l = !1) => {
141
143
  const n = e.featured;
142
144
  if (!n) return null;
143
145
  const s = n.accent ? { backgroundColor: n.accent, color: `contrast-color(${n.accent})` } : void 0;
144
146
  return /* @__PURE__ */ a(
145
- i,
147
+ c,
146
148
  {
147
149
  href: n.href,
148
- onClick: N,
150
+ onClick: y,
149
151
  target: n.external ? "_blank" : void 0,
150
152
  rel: n.external ? "noopener noreferrer" : void 0,
151
- className: l(
153
+ className: t(
152
154
  "group relative block overflow-hidden rounded-lg p-6 transition-transform duration-150 hover:-translate-y-0.5",
153
- o && "mt-8",
155
+ l && "mt-8",
154
156
  !n.accent && "bg-primary text-on-primary"
155
157
  ),
156
158
  style: s,
@@ -176,54 +178,56 @@ const P = "text-on-secondary", b = "text-foreground", W = {
176
178
  }
177
179
  );
178
180
  }, Q = (e) => {
179
- e.key === "Escape" && N(), x == null || x(e);
181
+ e.key === "Escape" && y(), h == null || h(e);
180
182
  };
181
183
  return /* @__PURE__ */ a(
182
184
  "header",
183
185
  {
184
- className: l(
186
+ "data-emphasis": i ? "" : void 0,
187
+ style: i ? { ...W(i), ...L } : L,
188
+ className: t(
185
189
  "relative w-full transition-colors duration-200",
186
190
  F && "sticky top-0 z-50",
187
- t.shell,
188
- t.header,
189
- E
191
+ o.shell,
192
+ o.header,
193
+ _
190
194
  ),
191
195
  onKeyDown: Q,
192
- ...q,
196
+ ...X,
193
197
  children: [
194
- /* @__PURE__ */ a("nav", { className: l("relative flex h-16 w-full items-center justify-between gap-4 transition-colors duration-200", t.bar), onMouseLeave: H, "aria-label": "Mega menu", children: [
195
- /* @__PURE__ */ r(i, { href: A, className: "shrink-0", children: J }),
196
- /* @__PURE__ */ r("ul", { className: "hidden items-center gap-1 lg:flex", children: g.map((e, o) => {
198
+ /* @__PURE__ */ a("nav", { className: t("relative flex h-16 w-full items-center justify-between gap-4 transition-colors duration-200", o.bar), onMouseLeave: H, "aria-label": "Mega menu", children: [
199
+ /* @__PURE__ */ r(c, { href: A, className: "shrink-0", children: J }),
200
+ /* @__PURE__ */ r("ul", { className: "hidden items-center gap-1 lg:flex", children: b.map((e, l) => {
197
201
  var d;
198
- const n = !!((d = e.columns) != null && d.length || e.featured), s = L === o;
202
+ const n = !!((d = e.columns) != null && d.length || e.featured), s = M === l;
199
203
  return /* @__PURE__ */ r("li", { className: "relative", children: n ? /* @__PURE__ */ a(
200
204
  "button",
201
205
  {
202
206
  type: "button",
203
207
  "aria-haspopup": "true",
204
208
  "aria-expanded": s,
205
- "aria-controls": O(o),
206
- onClick: () => c(s ? null : o),
207
- onMouseEnter: () => c(o),
208
- className: l(D, s && t.triggerOpen),
209
+ "aria-controls": T(l),
210
+ onClick: () => u(s ? null : l),
211
+ onMouseEnter: () => u(l),
212
+ className: t(j, s && o.triggerOpen),
209
213
  children: [
210
214
  /* @__PURE__ */ a("span", { className: "flex items-center gap-1.5", children: [
211
215
  e.label,
212
216
  e.badge ? /* @__PURE__ */ r(
213
217
  "span",
214
218
  {
215
- className: l(
219
+ className: t(
216
220
  "rounded-full px-1.5 py-0.5 text-[10px] font-semibold tracking-wide",
217
- t.badge
221
+ o.badge
218
222
  ),
219
223
  children: e.badge
220
224
  }
221
225
  ) : null
222
226
  ] }),
223
227
  /* @__PURE__ */ r(
224
- B,
228
+ E,
225
229
  {
226
- className: l(
230
+ className: t(
227
231
  "h-4 w-4 shrink-0 transition-transform duration-150",
228
232
  s && "rotate-180"
229
233
  )
@@ -231,59 +235,59 @@ const P = "text-on-secondary", b = "text-foreground", W = {
231
235
  )
232
236
  ]
233
237
  }
234
- ) : /* @__PURE__ */ a(i, { href: e.href ?? "#", target: e.external ? "_blank" : void 0, rel: e.external ? "noopener noreferrer" : void 0, className: D, children: [
238
+ ) : /* @__PURE__ */ a(c, { href: e.href ?? "#", target: e.external ? "_blank" : void 0, rel: e.external ? "noopener noreferrer" : void 0, className: j, children: [
235
239
  e.label,
236
- e.badge ? /* @__PURE__ */ r("span", { className: l("rounded-full px-1.5 py-0.5 text-[10px] font-semibold tracking-wide", t.badge), children: e.badge }) : null
240
+ e.badge ? /* @__PURE__ */ r("span", { className: t("rounded-full px-1.5 py-0.5 text-[10px] font-semibold tracking-wide", o.badge), children: e.badge }) : null
237
241
  ] }) }, e.label);
238
242
  }) }),
239
243
  /* @__PURE__ */ a("div", { className: "hidden items-center gap-3 lg:flex", children: [
240
- h,
241
- m,
244
+ x,
245
+ g,
242
246
  f
243
247
  ] }),
244
248
  /* @__PURE__ */ r(
245
249
  "button",
246
250
  {
247
251
  type: "button",
248
- "aria-label": u ? "Close menu" : "Open menu",
249
- "aria-expanded": u,
252
+ "aria-label": p ? "Close menu" : "Open menu",
253
+ "aria-expanded": p,
250
254
  onClick: () => v((e) => !e),
251
- className: l(
255
+ className: t(
252
256
  "inline-flex h-10 w-10 shrink-0 cursor-pointer items-center justify-center rounded-md lg:hidden",
253
257
  "transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
254
- t.mobileButton
258
+ o.mobileButton
255
259
  ),
256
- children: u ? /* @__PURE__ */ r(U, { className: "h-5 w-5" }) : /* @__PURE__ */ r(V, { className: "h-5 w-5" })
260
+ children: p ? /* @__PURE__ */ r(U, { className: "h-5 w-5" }) : /* @__PURE__ */ r(V, { className: "h-5 w-5" })
257
261
  }
258
262
  )
259
263
  ] }),
260
- g.map((e, o) => {
264
+ b.map((e, l) => {
261
265
  var s;
262
266
  if (!((s = e.columns) != null && s.length) && !e.featured) return null;
263
- const n = L === o;
267
+ const n = M === l;
264
268
  return /* @__PURE__ */ r(
265
269
  "div",
266
270
  {
267
- id: O(o),
271
+ id: T(l),
268
272
  role: "region",
269
273
  "aria-label": `${e.label} menu`,
270
- onMouseEnter: () => c(o),
271
- className: l(
274
+ onMouseEnter: () => u(l),
275
+ className: t(
272
276
  "absolute top-full z-50 pt-2 transition-all duration-150",
273
- k === "floating" ? "inset-x-0 mx-auto w-full max-w-5xl" : "inset-x-0",
277
+ G ? "inset-x-0 mx-auto w-full max-w-5xl" : "inset-x-0",
274
278
  n ? "visible translate-y-0 opacity-100" : "pointer-events-none invisible -translate-y-1 opacity-0"
275
279
  ),
276
280
  children: /* @__PURE__ */ a(
277
281
  "div",
278
282
  {
279
- className: l(
283
+ className: t(
280
284
  "overflow-hidden rounded-xl border p-6 md:p-8",
281
- t.panel,
285
+ o.panel,
282
286
  e.featured ? "lg:grid lg:grid-cols-[minmax(0,1fr)_auto] lg:gap-12" : ""
283
287
  ),
284
288
  children: [
285
- $(e),
286
- e.featured && /* @__PURE__ */ r("div", { className: l("mt-8 max-w-sm lg:mt-0 lg:w-64"), children: j(e) })
289
+ B(e),
290
+ e.featured && /* @__PURE__ */ r("div", { className: t("mt-8 max-w-sm lg:mt-0 lg:w-64"), children: P(e) })
287
291
  ]
288
292
  }
289
293
  )
@@ -294,38 +298,39 @@ const P = "text-on-secondary", b = "text-foreground", W = {
294
298
  /* @__PURE__ */ r(
295
299
  "div",
296
300
  {
297
- className: l(
301
+ className: t(
298
302
  "grid transition-[grid-template-rows,opacity] duration-200 lg:hidden",
299
- u ? "grid-rows-[1fr] opacity-100" : "grid-rows-[0fr] opacity-0",
300
- t.mobilePanel
303
+ p ? "grid-rows-[1fr] opacity-100" : "grid-rows-[0fr] opacity-0",
304
+ o.mobilePanel,
305
+ i && "bg-transparent"
301
306
  ),
302
307
  children: /* @__PURE__ */ r("div", { className: "min-h-0 overflow-hidden", children: /* @__PURE__ */ a("ul", { className: "flex flex-col py-4", children: [
303
- h ? /* @__PURE__ */ r("li", { className: "px-5 pb-4", children: h }) : null,
304
- g.map(
305
- (e, o) => {
308
+ x ? /* @__PURE__ */ r("li", { className: "px-5 pb-4", children: x }) : null,
309
+ b.map(
310
+ (e, l) => {
306
311
  var n;
307
312
  return (n = e.columns) != null && n.length || e.featured ? /* @__PURE__ */ a("li", { className: "px-5", children: [
308
313
  /* @__PURE__ */ a(
309
314
  "button",
310
315
  {
311
316
  type: "button",
312
- "aria-expanded": y === o,
313
- onClick: () => M((s) => s === o ? null : o),
314
- className: l(
317
+ "aria-expanded": N === l,
318
+ onClick: () => O((s) => s === l ? null : l),
319
+ className: t(
315
320
  "flex w-full items-center justify-between rounded-md px-2 py-2.5 text-sm font-medium transition-colors duration-150",
316
- t.mobileButton
321
+ o.mobileButton
317
322
  ),
318
323
  children: [
319
324
  /* @__PURE__ */ a("span", { className: "flex items-center gap-2", children: [
320
325
  e.label,
321
- e.badge ? /* @__PURE__ */ r("span", { className: l("rounded-full px-1.5 py-0.5 text-[10px] font-semibold tracking-wide", t.badge), children: e.badge }) : null
326
+ e.badge ? /* @__PURE__ */ r("span", { className: t("rounded-full px-1.5 py-0.5 text-[10px] font-semibold tracking-wide", o.badge), children: e.badge }) : null
322
327
  ] }),
323
328
  /* @__PURE__ */ r(
324
- B,
329
+ E,
325
330
  {
326
- className: l(
331
+ className: t(
327
332
  "h-4 w-4 shrink-0 transition-transform duration-150",
328
- y === o && "rotate-180"
333
+ N === l && "rotate-180"
329
334
  )
330
335
  }
331
336
  )
@@ -335,33 +340,33 @@ const P = "text-on-secondary", b = "text-foreground", W = {
335
340
  /* @__PURE__ */ r(
336
341
  "div",
337
342
  {
338
- className: l(
343
+ className: t(
339
344
  "grid transition-[grid-template-rows,opacity] duration-200",
340
- y === o ? "grid-rows-[1fr] opacity-100" : "grid-rows-[0fr] opacity-0"
345
+ N === l ? "grid-rows-[1fr] opacity-100" : "grid-rows-[0fr] opacity-0"
341
346
  ),
342
347
  children: /* @__PURE__ */ r("div", { className: "min-h-0 overflow-hidden", children: /* @__PURE__ */ a("div", { className: "py-2 pl-1", children: [
343
- $(e),
344
- e.featured ? /* @__PURE__ */ r("div", { className: "max-w-sm", children: j(e, !0) }) : null
348
+ B(e),
349
+ e.featured ? /* @__PURE__ */ r("div", { className: "max-w-sm", children: P(e, !0) }) : null
345
350
  ] }) })
346
351
  }
347
352
  )
348
353
  ] }, e.label) : /* @__PURE__ */ r("li", { className: "px-5", children: /* @__PURE__ */ r(
349
- i,
354
+ c,
350
355
  {
351
356
  href: e.href ?? "#",
352
357
  target: e.external ? "_blank" : void 0,
353
358
  rel: e.external ? "noopener noreferrer" : void 0,
354
359
  onClick: () => v(!1),
355
- className: l(
360
+ className: t(
356
361
  "block rounded-md px-2 py-2.5 text-sm font-medium transition-colors duration-150",
357
- t.mobileLink
362
+ o.mobileLink
358
363
  ),
359
364
  children: e.label
360
365
  }
361
366
  ) }, e.label);
362
367
  }
363
368
  ),
364
- f ? /* @__PURE__ */ r("li", { className: "px-8 pb-2 pt-3", children: f }) : m ? /* @__PURE__ */ r("li", { className: "mt-3 flex flex-wrap gap-3 px-8 pb-2", children: m }) : null
369
+ f ? /* @__PURE__ */ r("li", { className: "px-8 pb-2 pt-3", children: f }) : g ? /* @__PURE__ */ r("li", { className: "mt-3 flex flex-wrap gap-3 px-8 pb-2", children: g }) : null
365
370
  ] }) })
366
371
  }
367
372
  )
@@ -369,8 +374,8 @@ const P = "text-on-secondary", b = "text-foreground", W = {
369
374
  }
370
375
  );
371
376
  };
372
- Y.displayName = "MegaMenu";
377
+ K.displayName = "MegaMenu";
373
378
  export {
374
- Y as MegaMenu
379
+ K as MegaMenu
375
380
  };
376
381
  //# sourceMappingURL=MegaMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MegaMenu.js","sources":["../../../../src/components/MegaMenu/MegaMenu.tsx"],"sourcesContent":["\"use client\";\nimport { useId, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { ChevronDown, Menu, X } from \"../../icons\";\nimport type { MegaMenuProps, MegaMenuVariant, MegaMenuItem } from \"./types\";\n\ninterface MegaMenuStyle {\n shell: string;\n bar: string;\n header: string;\n trigger: string;\n triggerOpen: string;\n badge: string;\n panel: string;\n columnTitle: string;\n columnLink: string;\n linkDescription: string;\n mobilePanel: string;\n mobileButton: string;\n mobileLink: string;\n brandText: string;\n brandDot: string;\n}\n\nconst inverse = \"text-on-secondary\";\nconst light = \"text-foreground\";\n\nconst styles: Record<MegaMenuVariant, MegaMenuStyle> = {\n classic: {\n shell: \"border-b border-border bg-background/85 backdrop-blur-md supports-[backdrop-filter]:bg-background/75\",\n bar: \"mx-auto max-w-6xl px-5 sm:px-8\",\n header: \"px-0\",\n trigger: \"text-muted-foreground hover:text-foreground hover:bg-surface\",\n triggerOpen: \"bg-surface text-foreground\",\n badge: \"bg-primary-soft text-primary\",\n panel: \"border-border bg-surface shadow-raised\",\n columnTitle: \"text-muted-foreground/70\",\n columnLink: \"hover:bg-surface-strong\",\n linkDescription: \"text-muted-foreground\",\n mobilePanel: \"border-t border-border bg-background\",\n mobileButton: `${light} hover:bg-surface`,\n mobileLink: \"text-muted-foreground hover:bg-surface hover:text-foreground\",\n brandText: light,\n brandDot: \"bg-foreground\",\n },\n floating: {\n shell: \"px-0\",\n bar: \"mx-auto mt-3 max-w-5xl rounded-xl border border-border bg-surface/90 px-5 shadow-soft backdrop-blur-md supports-[backdrop-filter]:bg-surface/70\",\n header: \"px-3 sm:px-6\",\n trigger: \"text-muted-foreground hover:text-foreground hover:bg-surface\",\n triggerOpen: \"bg-surface text-foreground\",\n badge: \"bg-primary-soft text-primary\",\n panel: \"border-border bg-surface shadow-raised\",\n columnTitle: \"text-muted-foreground/70\",\n columnLink: \"hover:bg-surface-strong\",\n linkDescription: \"text-muted-foreground\",\n mobilePanel: \"mx-3 mb-3 max-w-5xl overflow-hidden rounded-b-xl border border-border bg-surface\",\n mobileButton: `${light} hover:bg-surface`,\n mobileLink: \"text-muted-foreground hover:bg-surface hover:text-foreground\",\n brandText: light,\n brandDot: \"bg-foreground\",\n },\n inverse: {\n shell: \"border-b border-white/10 bg-[#101010]/85 backdrop-blur-md\",\n bar: \"mx-auto max-w-6xl px-5 sm:px-8\",\n header: \"px-0\",\n trigger: \"text-on-secondary/60 hover:text-on-secondary hover:bg-white/10\",\n triggerOpen: \"bg-white/10 text-on-secondary\",\n badge: \"bg-white/15 text-on-secondary\",\n panel: \"border-white/10 bg-[#161616]\",\n columnTitle: \"text-on-secondary/45\",\n columnLink: \"hover:bg-white/10\",\n linkDescription: \"text-on-secondary/50\",\n mobilePanel: \"border-t border-white/10 bg-[#101010]\",\n mobileButton: `${inverse} hover:bg-white/10`,\n mobileLink: \"text-on-secondary/70 hover:bg-white/10 hover:text-on-secondary\",\n brandText: inverse,\n brandDot: \"bg-on-secondary\",\n },\n};\n\nexport const MegaMenu = ({\n className,\n variant = \"classic\",\n brand,\n logo,\n logoSrc,\n logoAlt,\n logoClassName,\n brandHref = \"#\",\n items,\n actions,\n cta,\n languageSwitcher,\n sticky = true,\n LinkComponent,\n onKeyDown,\n ...props\n}: MegaMenuProps) => {\n const ids = useId();\n const Link = LinkComponent ?? \"a\";\n const [openIndex, setOpenIndex] = useState<number | null>(null);\n const [mobileOpen, setMobileOpen] = useState(false);\n const [mobileExpanded, setMobileExpanded] = useState<number | null>(null);\n const s = styles[variant];\n\n const closePanels = () => setOpenIndex(null);\n const closeAll = () => {\n setOpenIndex(null);\n setMobileOpen(false);\n setMobileExpanded(null);\n };\n\n const panelId = (i: number) => `${ids}-panel-${i}`;\n\n const logoNode =\n logo ??\n (logoSrc ? (\n <img\n src={logoSrc}\n alt={logoAlt ?? (typeof brand === \"string\" ? brand : \"Logo\")}\n className={cn(\"h-7 w-auto\", logoClassName)}\n />\n ) : null);\n\n const brandNode = logoNode ? (\n <span className=\"flex items-center\">{logoNode}</span>\n ) : (\n <span className={cn(\"flex items-center gap-2 font-display text-[17px] font-bold tracking-tight\", s.brandText)}>\n <span aria-hidden className={cn(\"inline-block h-2.5 w-2.5 rounded-sm\", s.brandDot)} />\n {brand}\n </span>\n );\n\n const triggerClasses = cn(\n \"flex items-center gap-1.5 rounded-md px-3 py-2 text-sm font-medium transition-colors duration-150\",\n s.trigger,\n );\n\n const renderColumns = (item: MegaMenuItem) => (\n <div\n className={cn(\n \"grid gap-x-10 gap-y-8 sm:grid-cols-2\",\n item.featured ? \"\" : \"lg:grid-cols-3\",\n )}\n >\n {item.columns?.map((column, ci) => (\n <div key={column.title ?? ci}>\n {column.title ? (\n <h4\n className={cn(\n \"text-xs font-semibold uppercase tracking-[0.14em]\",\n s.columnTitle,\n )}\n >\n {column.title}\n </h4>\n ) : null}\n <ul className={cn(column.title && \"mt-3\", \"space-y-0.5\")}>\n {column.links.map((link) => (\n <li key={link.href}>\n <Link\n href={link.href}\n onClick={closeAll}\n target={link.external ? \"_blank\" : undefined}\n rel={link.external ? \"noopener noreferrer\" : undefined}\n className={cn(\n \"-mx-2 block rounded-md px-2 py-2 transition-colors duration-150\",\n s.columnLink,\n )}\n >\n <span className=\"block text-sm font-medium text-foreground\">\n {link.label}\n </span>\n {link.description ? (\n <span\n className={cn(\n \"mt-0.5 block text-[13px] leading-snug\",\n s.linkDescription,\n )}\n >\n {link.description}\n </span>\n ) : null}\n </Link>\n </li>\n ))}\n </ul>\n </div>\n ))}\n </div>\n );\n\n const renderFeatured = (item: MegaMenuItem, mobile = false) => {\n const featured = item.featured;\n if (!featured) return null;\n const featuredStyle = featured.accent\n ? { backgroundColor: featured.accent, color: `contrast-color(${featured.accent})` }\n : undefined;\n\n return (\n <Link\n href={featured.href}\n onClick={closeAll}\n target={featured.external ? \"_blank\" : undefined}\n rel={featured.external ? \"noopener noreferrer\" : undefined}\n className={cn(\n \"group relative block overflow-hidden rounded-lg p-6 transition-transform duration-150 hover:-translate-y-0.5\",\n mobile && \"mt-8\",\n !featured.accent && \"bg-primary text-on-primary\",\n )}\n style={featuredStyle}\n >\n <div className=\"flex h-full flex-col justify-between gap-4\">\n <div>\n <h4 className=\"font-display text-base font-semibold tracking-tight\">\n {featured.title}\n </h4>\n {featured.description ? (\n <p className=\"mt-1.5 text-[13px] leading-relaxed opacity-80\">\n {featured.description}\n </p>\n ) : null}\n </div>\n {featured.cta ? (\n <span className=\"text-sm font-semibold underline decoration-1 underline-offset-4\">\n {featured.cta} →\n </span>\n ) : null}\n </div>\n <div\n aria-hidden\n className=\"pointer-events-none absolute -right-8 -top-8 h-28 w-28 rounded-full opacity-20 blur-2xl bg-black/40\"\n />\n </Link>\n );\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (event.key === \"Escape\") {\n closeAll();\n }\n onKeyDown?.(event);\n };\n\n return (\n <header\n className={cn(\n \"relative w-full transition-colors duration-200\",\n sticky && \"sticky top-0 z-50\",\n s.shell,\n s.header,\n className,\n )}\n onKeyDown={handleKeyDown}\n {...props}\n >\n <nav className={cn(\"relative flex h-16 w-full items-center justify-between gap-4 transition-colors duration-200\", s.bar)} onMouseLeave={closePanels} aria-label=\"Mega menu\">\n <Link href={brandHref} className=\"shrink-0\">\n {brandNode}\n </Link>\n\n <ul className=\"hidden items-center gap-1 lg:flex\">\n {items.map((item, i) => {\n const hasPanel = Boolean(item.columns?.length || item.featured);\n const open = openIndex === i;\n return (\n <li key={item.label} className=\"relative\">\n {hasPanel ? (\n <button\n type=\"button\"\n aria-haspopup=\"true\"\n aria-expanded={open}\n aria-controls={panelId(i)}\n onClick={() => setOpenIndex(open ? null : i)}\n onMouseEnter={() => setOpenIndex(i)}\n className={cn(triggerClasses, open && s.triggerOpen)}\n >\n <span className=\"flex items-center gap-1.5\">\n {item.label}\n {item.badge ? (\n <span\n className={cn(\n \"rounded-full px-1.5 py-0.5 text-[10px] font-semibold tracking-wide\",\n s.badge,\n )}\n >\n {item.badge}\n </span>\n ) : null}\n </span>\n <ChevronDown\n className={cn(\n \"h-4 w-4 shrink-0 transition-transform duration-150\",\n open && \"rotate-180\",\n )}\n />\n </button>\n ) : (\n <Link href={item.href ?? \"#\"} target={item.external ? \"_blank\" : undefined} rel={item.external ? \"noopener noreferrer\" : undefined} className={triggerClasses}>\n {item.label}\n {item.badge ? (\n <span className={cn(\"rounded-full px-1.5 py-0.5 text-[10px] font-semibold tracking-wide\", s.badge)}>\n {item.badge}\n </span>\n ) : null}\n </Link>\n )}\n </li>\n );\n })}\n </ul>\n\n <div className=\"hidden items-center gap-3 lg:flex\">\n {languageSwitcher}\n {actions}\n {cta}\n </div>\n\n <button\n type=\"button\"\n aria-label={mobileOpen ? \"Close menu\" : \"Open menu\"}\n aria-expanded={mobileOpen}\n onClick={() => setMobileOpen((o) => !o)}\n className={cn(\n \"inline-flex h-10 w-10 shrink-0 cursor-pointer items-center justify-center rounded-md lg:hidden\",\n \"transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n s.mobileButton,\n )}\n >\n {mobileOpen ? <X className=\"h-5 w-5\" /> : <Menu className=\"h-5 w-5\" />}\n </button>\n </nav>\n\n {items.map((item, i) => {\n if (!item.columns?.length && !item.featured) return null;\n const open = openIndex === i;\n return (\n <div\n key={item.label}\n id={panelId(i)}\n role=\"region\"\n aria-label={`${item.label} menu`}\n onMouseEnter={() => setOpenIndex(i)}\n className={cn(\n \"absolute top-full z-50 pt-2 transition-all duration-150\",\n variant === \"floating\" ? \"inset-x-0 mx-auto w-full max-w-5xl\" : \"inset-x-0\",\n open\n ? \"visible translate-y-0 opacity-100\"\n : \"pointer-events-none invisible -translate-y-1 opacity-0\",\n )}\n >\n <div\n className={cn(\n \"overflow-hidden rounded-xl border p-6 md:p-8\",\n s.panel,\n item.featured ? \"lg:grid lg:grid-cols-[minmax(0,1fr)_auto] lg:gap-12\" : \"\",\n )}\n >\n {renderColumns(item)}\n {item.featured && (\n <div className={cn(\"mt-8 max-w-sm lg:mt-0 lg:w-64\")}>\n {renderFeatured(item)}\n </div>\n )}\n </div>\n </div>\n );\n })}\n\n <div\n className={cn(\n \"grid transition-[grid-template-rows,opacity] duration-200 lg:hidden\",\n mobileOpen ? \"grid-rows-[1fr] opacity-100\" : \"grid-rows-[0fr] opacity-0\",\n s.mobilePanel,\n )}\n >\n <div className=\"min-h-0 overflow-hidden\">\n <ul className=\"flex flex-col py-4\">\n {languageSwitcher ? (\n <li className=\"px-5 pb-4\">{languageSwitcher}</li>\n ) : null}\n {items.map((item, i) =>\n item.columns?.length || item.featured ? (\n <li key={item.label} className=\"px-5\">\n <button\n type=\"button\"\n aria-expanded={mobileExpanded === i}\n onClick={() =>\n setMobileExpanded((prev) => (prev === i ? null : i))\n }\n className={cn(\n \"flex w-full items-center justify-between rounded-md px-2 py-2.5 text-sm font-medium transition-colors duration-150\",\n s.mobileButton,\n )}\n >\n <span className=\"flex items-center gap-2\">\n {item.label}\n {item.badge ? (\n <span className={cn(\"rounded-full px-1.5 py-0.5 text-[10px] font-semibold tracking-wide\", s.badge)}>\n {item.badge}\n </span>\n ) : null}\n </span>\n <ChevronDown\n className={cn(\n \"h-4 w-4 shrink-0 transition-transform duration-150\",\n mobileExpanded === i && \"rotate-180\",\n )}\n />\n </button>\n <div\n className={cn(\n \"grid transition-[grid-template-rows,opacity] duration-200\",\n mobileExpanded === i\n ? \"grid-rows-[1fr] opacity-100\"\n : \"grid-rows-[0fr] opacity-0\",\n )}\n >\n <div className=\"min-h-0 overflow-hidden\">\n <div className=\"py-2 pl-1\">\n {renderColumns(item)}\n {item.featured ? (\n <div className=\"max-w-sm\">{renderFeatured(item, true)}</div>\n ) : null}\n </div>\n </div>\n </div>\n </li>\n ) : (\n <li key={item.label} className=\"px-5\">\n <Link\n href={item.href ?? \"#\"}\n target={item.external ? \"_blank\" : undefined}\n rel={item.external ? \"noopener noreferrer\" : undefined}\n onClick={() => setMobileOpen(false)}\n className={cn(\n \"block rounded-md px-2 py-2.5 text-sm font-medium transition-colors duration-150\",\n s.mobileLink,\n )}\n >\n {item.label}\n </Link>\n </li>\n ),\n )}\n {cta ? (\n <li className=\"px-8 pb-2 pt-3\">{cta}</li>\n ) : actions ? (\n <li className=\"mt-3 flex flex-wrap gap-3 px-8 pb-2\">{actions}</li>\n ) : null}\n </ul>\n </div>\n </div>\n </header>\n );\n};\nMegaMenu.displayName = \"MegaMenu\";"],"names":["inverse","light","styles","MegaMenu","className","variant","brand","logo","logoSrc","logoAlt","logoClassName","brandHref","items","actions","cta","languageSwitcher","sticky","LinkComponent","onKeyDown","props","ids","useId","Link","openIndex","setOpenIndex","useState","mobileOpen","setMobileOpen","mobileExpanded","setMobileExpanded","s","closePanels","closeAll","panelId","i","logoNode","jsx","cn","brandNode","jsxs","triggerClasses","renderColumns","item","column","ci","link","renderFeatured","mobile","featured","featuredStyle","handleKeyDown","event","hasPanel","_a","open","ChevronDown","o","X","Menu","prev"],"mappings":"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"}
1
+ {"version":3,"file":"MegaMenu.js","sources":["../../../../src/components/MegaMenu/MegaMenu.tsx"],"sourcesContent":["\"use client\";\nimport { useId, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { ChevronDown, Menu, X } from \"../../icons\";\nimport { emphasisSurfaceStyle } from \"../../utils/surface\";\nimport type { MegaMenuProps, MegaMenuVariant, MegaMenuItem } from \"./types\";\n\ninterface MegaMenuStyle {\n shell: string;\n bar: string;\n header: string;\n trigger: string;\n triggerOpen: string;\n badge: string;\n panel: string;\n columnTitle: string;\n columnLink: string;\n linkDescription: string;\n mobilePanel: string;\n mobileButton: string;\n mobileLink: string;\n brandText: string;\n brandDot: string;\n}\n\nconst styles: Record<MegaMenuVariant, MegaMenuStyle> = {\n classic: {\n shell: \"border-b border-border bg-background/85 backdrop-blur-md supports-[backdrop-filter]:bg-background/75\",\n bar: \"mx-auto max-w-6xl px-5 sm:px-8\",\n header: \"px-0\",\n trigger: \"text-muted-foreground hover:text-foreground hover:bg-surface\",\n triggerOpen: \"bg-surface text-foreground\",\n badge: \"bg-primary-soft text-primary\",\n panel: \"border-border bg-surface shadow-raised\",\n columnTitle: \"text-muted-foreground/70\",\n columnLink: \"hover:bg-surface-strong\",\n linkDescription: \"text-muted-foreground\",\n mobilePanel: \"border-t border-border bg-background\",\n mobileButton: \"text-foreground hover:bg-surface\",\n mobileLink: \"text-muted-foreground hover:bg-surface hover:text-foreground\",\n brandText: \"text-foreground\",\n brandDot: \"bg-foreground\",\n },\n floating: {\n shell: \"px-0\",\n bar: \"mx-auto mt-3 max-w-5xl rounded-xl border border-border bg-surface/90 px-5 shadow-soft backdrop-blur-md supports-[backdrop-filter]:bg-surface/70\",\n header: \"px-3 sm:px-6\",\n trigger: \"text-muted-foreground hover:text-foreground hover:bg-surface\",\n triggerOpen: \"bg-surface text-foreground\",\n badge: \"bg-primary-soft text-primary\",\n panel: \"border-border bg-surface shadow-raised\",\n columnTitle: \"text-muted-foreground/70\",\n columnLink: \"hover:bg-surface-strong\",\n linkDescription: \"text-muted-foreground\",\n mobilePanel: \"mx-3 mb-3 max-w-5xl overflow-hidden rounded-b-xl border border-border bg-surface\",\n mobileButton: \"text-foreground hover:bg-surface\",\n mobileLink: \"text-muted-foreground hover:bg-surface hover:text-foreground\",\n brandText: \"text-foreground\",\n brandDot: \"bg-foreground\",\n },\n};\n\n/**\n * On an emphasis (custom-background) bar the triggers and mobile controls inherit\n * the resolved contrast color instead of the page tokens. The dropdown panel\n * stays a paper card for legibility.\n */\nconst emphatic: MegaMenuStyle = {\n shell: \"\",\n bar: \"mx-auto max-w-6xl px-5 sm:px-8\",\n header: \"px-0\",\n trigger: \"text-current/70 hover:text-current hover:bg-current/10\",\n triggerOpen: \"bg-current/15 text-current\",\n badge: \"bg-current/20 text-current\",\n panel: \"border-border bg-surface shadow-raised\",\n columnTitle: \"text-muted-foreground/70\",\n columnLink: \"hover:bg-surface-strong\",\n linkDescription: \"text-muted-foreground\",\n mobilePanel: \"border-t border-current/15\",\n mobileButton: \"text-current hover:bg-current/10\",\n mobileLink: \"text-current/70 hover:bg-current/10 hover:text-current\",\n brandText: \"text-current\",\n brandDot: \"bg-current\",\n};\n\nexport const MegaMenu = ({\n className,\n variant = \"classic\",\n brand,\n logo,\n logoSrc,\n logoAlt,\n logoClassName,\n brandHref = \"#\",\n items,\n actions,\n cta,\n languageSwitcher,\n sticky = true,\n background,\n LinkComponent,\n onKeyDown,\n style,\n ...props\n}: MegaMenuProps) => {\n const ids = useId();\n const Link = LinkComponent ?? \"a\";\n const [openIndex, setOpenIndex] = useState<number | null>(null);\n const [mobileOpen, setMobileOpen] = useState(false);\n const [mobileExpanded, setMobileExpanded] = useState<number | null>(null);\n const s = background ? emphatic : styles[variant];\n const floating = !background && variant === \"floating\";\n\n const closePanels = () => setOpenIndex(null);\n const closeAll = () => {\n setOpenIndex(null);\n setMobileOpen(false);\n setMobileExpanded(null);\n };\n\n const panelId = (i: number) => `${ids}-panel-${i}`;\n\n const logoNode =\n logo ??\n (logoSrc ? (\n <img\n src={logoSrc}\n alt={logoAlt ?? (typeof brand === \"string\" ? brand : \"Logo\")}\n className={cn(\"h-7 w-auto\", logoClassName)}\n />\n ) : null);\n\n const brandNode = logoNode ? (\n <span className=\"flex items-center\">{logoNode}</span>\n ) : (\n <span className={cn(\"flex items-center gap-2 font-display text-[17px] font-bold tracking-tight\", s.brandText)}>\n <span aria-hidden className={cn(\"inline-block h-2.5 w-2.5 rounded-sm\", s.brandDot)} />\n {brand}\n </span>\n );\n\n const triggerClasses = cn(\n \"flex items-center gap-1.5 rounded-md px-3 py-2 text-sm font-medium transition-colors duration-150\",\n s.trigger,\n );\n\n const renderColumns = (item: MegaMenuItem) => (\n <div\n className={cn(\n \"grid gap-x-10 gap-y-8 sm:grid-cols-2\",\n item.featured ? \"\" : \"lg:grid-cols-3\",\n )}\n >\n {item.columns?.map((column, ci) => (\n <div key={column.title ?? ci}>\n {column.title ? (\n <h4\n className={cn(\n \"text-xs font-semibold uppercase tracking-[0.14em]\",\n s.columnTitle,\n )}\n >\n {column.title}\n </h4>\n ) : null}\n <ul className={cn(column.title && \"mt-3\", \"space-y-0.5\")}>\n {column.links.map((link) => (\n <li key={link.href}>\n <Link\n href={link.href}\n onClick={closeAll}\n target={link.external ? \"_blank\" : undefined}\n rel={link.external ? \"noopener noreferrer\" : undefined}\n className={cn(\n \"-mx-2 block rounded-md px-2 py-2 transition-colors duration-150\",\n s.columnLink,\n )}\n >\n <span className=\"block text-sm font-medium text-foreground\">\n {link.label}\n </span>\n {link.description ? (\n <span\n className={cn(\n \"mt-0.5 block text-[13px] leading-snug\",\n s.linkDescription,\n )}\n >\n {link.description}\n </span>\n ) : null}\n </Link>\n </li>\n ))}\n </ul>\n </div>\n ))}\n </div>\n );\n\n const renderFeatured = (item: MegaMenuItem, mobile = false) => {\n const featured = item.featured;\n if (!featured) return null;\n const featuredStyle = featured.accent\n ? { backgroundColor: featured.accent, color: `contrast-color(${featured.accent})` }\n : undefined;\n\n return (\n <Link\n href={featured.href}\n onClick={closeAll}\n target={featured.external ? \"_blank\" : undefined}\n rel={featured.external ? \"noopener noreferrer\" : undefined}\n className={cn(\n \"group relative block overflow-hidden rounded-lg p-6 transition-transform duration-150 hover:-translate-y-0.5\",\n mobile && \"mt-8\",\n !featured.accent && \"bg-primary text-on-primary\",\n )}\n style={featuredStyle}\n >\n <div className=\"flex h-full flex-col justify-between gap-4\">\n <div>\n <h4 className=\"font-display text-base font-semibold tracking-tight\">\n {featured.title}\n </h4>\n {featured.description ? (\n <p className=\"mt-1.5 text-[13px] leading-relaxed opacity-80\">\n {featured.description}\n </p>\n ) : null}\n </div>\n {featured.cta ? (\n <span className=\"text-sm font-semibold underline decoration-1 underline-offset-4\">\n {featured.cta} →\n </span>\n ) : null}\n </div>\n <div\n aria-hidden\n className=\"pointer-events-none absolute -right-8 -top-8 h-28 w-28 rounded-full opacity-20 blur-2xl bg-black/40\"\n />\n </Link>\n );\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (event.key === \"Escape\") {\n closeAll();\n }\n onKeyDown?.(event);\n };\n\n return (\n <header\n data-emphasis={background ? \"\" : undefined}\n style={background ? { ...emphasisSurfaceStyle(background), ...style } : style}\n className={cn(\n \"relative w-full transition-colors duration-200\",\n sticky && \"sticky top-0 z-50\",\n s.shell,\n s.header,\n className,\n )}\n onKeyDown={handleKeyDown}\n {...props}\n >\n <nav className={cn(\"relative flex h-16 w-full items-center justify-between gap-4 transition-colors duration-200\", s.bar)} onMouseLeave={closePanels} aria-label=\"Mega menu\">\n <Link href={brandHref} className=\"shrink-0\">\n {brandNode}\n </Link>\n\n <ul className=\"hidden items-center gap-1 lg:flex\">\n {items.map((item, i) => {\n const hasPanel = Boolean(item.columns?.length || item.featured);\n const open = openIndex === i;\n return (\n <li key={item.label} className=\"relative\">\n {hasPanel ? (\n <button\n type=\"button\"\n aria-haspopup=\"true\"\n aria-expanded={open}\n aria-controls={panelId(i)}\n onClick={() => setOpenIndex(open ? null : i)}\n onMouseEnter={() => setOpenIndex(i)}\n className={cn(triggerClasses, open && s.triggerOpen)}\n >\n <span className=\"flex items-center gap-1.5\">\n {item.label}\n {item.badge ? (\n <span\n className={cn(\n \"rounded-full px-1.5 py-0.5 text-[10px] font-semibold tracking-wide\",\n s.badge,\n )}\n >\n {item.badge}\n </span>\n ) : null}\n </span>\n <ChevronDown\n className={cn(\n \"h-4 w-4 shrink-0 transition-transform duration-150\",\n open && \"rotate-180\",\n )}\n />\n </button>\n ) : (\n <Link href={item.href ?? \"#\"} target={item.external ? \"_blank\" : undefined} rel={item.external ? \"noopener noreferrer\" : undefined} className={triggerClasses}>\n {item.label}\n {item.badge ? (\n <span className={cn(\"rounded-full px-1.5 py-0.5 text-[10px] font-semibold tracking-wide\", s.badge)}>\n {item.badge}\n </span>\n ) : null}\n </Link>\n )}\n </li>\n );\n })}\n </ul>\n\n <div className=\"hidden items-center gap-3 lg:flex\">\n {languageSwitcher}\n {actions}\n {cta}\n </div>\n\n <button\n type=\"button\"\n aria-label={mobileOpen ? \"Close menu\" : \"Open menu\"}\n aria-expanded={mobileOpen}\n onClick={() => setMobileOpen((o) => !o)}\n className={cn(\n \"inline-flex h-10 w-10 shrink-0 cursor-pointer items-center justify-center rounded-md lg:hidden\",\n \"transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n s.mobileButton,\n )}\n >\n {mobileOpen ? <X className=\"h-5 w-5\" /> : <Menu className=\"h-5 w-5\" />}\n </button>\n </nav>\n\n {items.map((item, i) => {\n if (!item.columns?.length && !item.featured) return null;\n const open = openIndex === i;\n return (\n <div\n key={item.label}\n id={panelId(i)}\n role=\"region\"\n aria-label={`${item.label} menu`}\n onMouseEnter={() => setOpenIndex(i)}\n className={cn(\n \"absolute top-full z-50 pt-2 transition-all duration-150\",\n floating ? \"inset-x-0 mx-auto w-full max-w-5xl\" : \"inset-x-0\",\n open\n ? \"visible translate-y-0 opacity-100\"\n : \"pointer-events-none invisible -translate-y-1 opacity-0\",\n )}\n >\n <div\n className={cn(\n \"overflow-hidden rounded-xl border p-6 md:p-8\",\n s.panel,\n item.featured ? \"lg:grid lg:grid-cols-[minmax(0,1fr)_auto] lg:gap-12\" : \"\",\n )}\n >\n {renderColumns(item)}\n {item.featured && (\n <div className={cn(\"mt-8 max-w-sm lg:mt-0 lg:w-64\")}>\n {renderFeatured(item)}\n </div>\n )}\n </div>\n </div>\n );\n })}\n\n <div\n className={cn(\n \"grid transition-[grid-template-rows,opacity] duration-200 lg:hidden\",\n mobileOpen ? \"grid-rows-[1fr] opacity-100\" : \"grid-rows-[0fr] opacity-0\",\n s.mobilePanel,\n background && \"bg-transparent\",\n )}\n >\n <div className=\"min-h-0 overflow-hidden\">\n <ul className=\"flex flex-col py-4\">\n {languageSwitcher ? (\n <li className=\"px-5 pb-4\">{languageSwitcher}</li>\n ) : null}\n {items.map((item, i) =>\n item.columns?.length || item.featured ? (\n <li key={item.label} className=\"px-5\">\n <button\n type=\"button\"\n aria-expanded={mobileExpanded === i}\n onClick={() =>\n setMobileExpanded((prev) => (prev === i ? null : i))\n }\n className={cn(\n \"flex w-full items-center justify-between rounded-md px-2 py-2.5 text-sm font-medium transition-colors duration-150\",\n s.mobileButton,\n )}\n >\n <span className=\"flex items-center gap-2\">\n {item.label}\n {item.badge ? (\n <span className={cn(\"rounded-full px-1.5 py-0.5 text-[10px] font-semibold tracking-wide\", s.badge)}>\n {item.badge}\n </span>\n ) : null}\n </span>\n <ChevronDown\n className={cn(\n \"h-4 w-4 shrink-0 transition-transform duration-150\",\n mobileExpanded === i && \"rotate-180\",\n )}\n />\n </button>\n <div\n className={cn(\n \"grid transition-[grid-template-rows,opacity] duration-200\",\n mobileExpanded === i\n ? \"grid-rows-[1fr] opacity-100\"\n : \"grid-rows-[0fr] opacity-0\",\n )}\n >\n <div className=\"min-h-0 overflow-hidden\">\n <div className=\"py-2 pl-1\">\n {renderColumns(item)}\n {item.featured ? (\n <div className=\"max-w-sm\">{renderFeatured(item, true)}</div>\n ) : null}\n </div>\n </div>\n </div>\n </li>\n ) : (\n <li key={item.label} className=\"px-5\">\n <Link\n href={item.href ?? \"#\"}\n target={item.external ? \"_blank\" : undefined}\n rel={item.external ? \"noopener noreferrer\" : undefined}\n onClick={() => setMobileOpen(false)}\n className={cn(\n \"block rounded-md px-2 py-2.5 text-sm font-medium transition-colors duration-150\",\n s.mobileLink,\n )}\n >\n {item.label}\n </Link>\n </li>\n ),\n )}\n {cta ? (\n <li className=\"px-8 pb-2 pt-3\">{cta}</li>\n ) : actions ? (\n <li className=\"mt-3 flex flex-wrap gap-3 px-8 pb-2\">{actions}</li>\n ) : null}\n </ul>\n </div>\n </div>\n </header>\n );\n};\nMegaMenu.displayName = \"MegaMenu\";"],"names":["styles","emphatic","MegaMenu","className","variant","brand","logo","logoSrc","logoAlt","logoClassName","brandHref","items","actions","cta","languageSwitcher","sticky","background","LinkComponent","onKeyDown","style","props","ids","useId","Link","openIndex","setOpenIndex","useState","mobileOpen","setMobileOpen","mobileExpanded","setMobileExpanded","s","floating","closePanels","closeAll","panelId","i","logoNode","jsx","cn","brandNode","jsxs","triggerClasses","renderColumns","item","column","ci","link","renderFeatured","mobile","featured","featuredStyle","handleKeyDown","event","emphasisSurfaceStyle","hasPanel","_a","open","ChevronDown","o","X","Menu","prev"],"mappings":"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"}