@humain/ui 2.2.6 → 2.2.9

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 (159) hide show
  1. package/dist/index101.js +2 -2
  2. package/dist/index101.js.map +1 -1
  3. package/dist/index103.js +3 -3
  4. package/dist/index103.js.map +1 -1
  5. package/dist/index108.js +1 -1
  6. package/dist/index108.js.map +1 -1
  7. package/dist/index117.js +1 -1
  8. package/dist/index117.js.map +1 -1
  9. package/dist/index122.js +6 -6
  10. package/dist/index122.js.map +1 -1
  11. package/dist/index126.js +1 -1
  12. package/dist/index126.js.map +1 -1
  13. package/dist/index130.js +2 -2
  14. package/dist/index130.js.map +1 -1
  15. package/dist/index146.js +4 -4
  16. package/dist/index146.js.map +1 -1
  17. package/dist/index152.js +1 -1
  18. package/dist/index152.js.map +1 -1
  19. package/dist/index154.js +2 -2
  20. package/dist/index154.js.map +1 -1
  21. package/dist/index166.js +1 -1
  22. package/dist/index166.js.map +1 -1
  23. package/dist/index168.js +1 -1
  24. package/dist/index168.js.map +1 -1
  25. package/dist/index169.js +1 -1
  26. package/dist/index169.js.map +1 -1
  27. package/dist/index173.js +2 -2
  28. package/dist/index173.js.map +1 -1
  29. package/dist/index175.js +4 -4
  30. package/dist/index175.js.map +1 -1
  31. package/dist/index176.js +2 -2
  32. package/dist/index176.js.map +1 -1
  33. package/dist/index177.js +2 -2
  34. package/dist/index177.js.map +1 -1
  35. package/dist/index184.js +1 -1
  36. package/dist/index184.js.map +1 -1
  37. package/dist/index191.js +3 -3
  38. package/dist/index191.js.map +1 -1
  39. package/dist/index192.js +2 -2
  40. package/dist/index192.js.map +1 -1
  41. package/dist/index201.js +2 -2
  42. package/dist/index201.js.map +1 -1
  43. package/dist/index204.js +4 -4
  44. package/dist/index204.js.map +1 -1
  45. package/dist/index228.js +1 -1
  46. package/dist/index228.js.map +1 -1
  47. package/dist/index229.js +1 -1
  48. package/dist/index229.js.map +1 -1
  49. package/dist/index24.js +2 -2
  50. package/dist/index24.js.map +1 -1
  51. package/dist/index5.js +1 -1
  52. package/dist/index5.js.map +1 -1
  53. package/dist/styles.css +1 -1
  54. package/dist/wc/AICodeBlock.js +41 -41
  55. package/dist/wc/AICodeBlock.js.map +1 -1
  56. package/dist/wc/AIMermaidDiagram.js +7 -7
  57. package/dist/wc/AIMermaidDiagram.js.map +1 -1
  58. package/dist/wc/AIMessage.js +6 -6
  59. package/dist/wc/AIMessage.js.map +1 -1
  60. package/dist/wc/AISource.js +2 -2
  61. package/dist/wc/AISource.js.map +1 -1
  62. package/dist/wc/AIToolCall.js +1 -1
  63. package/dist/wc/AIToolCall.js.map +1 -1
  64. package/dist/wc/Breadcrumb.js +43 -43
  65. package/dist/wc/Breadcrumb.js.map +1 -1
  66. package/dist/wc/DropdownMenu.js +9 -9
  67. package/dist/wc/DropdownMenu.js.map +1 -1
  68. package/dist/wc/Kbd.js +22 -22
  69. package/dist/wc/Kbd.js.map +1 -1
  70. package/dist/wc/button.js +7 -7
  71. package/dist/wc/button.js.map +1 -1
  72. package/dist/wc/close-button.js +19 -19
  73. package/dist/wc/close-button.js.map +1 -1
  74. package/dist/wc/hf-ai-prompt-suggestion.js +14 -14
  75. package/dist/wc/hf-ai-prompt-suggestion.js.map +1 -1
  76. package/dist/wc/hf-ai-reasoning-block.js +13 -13
  77. package/dist/wc/hf-ai-reasoning-block.js.map +1 -1
  78. package/dist/wc/hf-ai-steps.js +53 -53
  79. package/dist/wc/hf-ai-steps.js.map +1 -1
  80. package/dist/wc/hf-ai-system-message.js +26 -26
  81. package/dist/wc/hf-ai-system-message.js.map +1 -1
  82. package/dist/wc/hf-code-snippet.js +35 -35
  83. package/dist/wc/hf-code-snippet.js.map +1 -1
  84. package/dist/wc/hf-command-menu.js +39 -39
  85. package/dist/wc/hf-command-menu.js.map +1 -1
  86. package/dist/wc/hf-data-table.js +3 -3
  87. package/dist/wc/hf-data-table.js.map +1 -1
  88. package/dist/wc/hf-display-value.js +50 -50
  89. package/dist/wc/hf-display-value.js.map +1 -1
  90. package/dist/wc/hf-nav-account-menu.js +5 -5
  91. package/dist/wc/hf-nav-account-menu.js.map +1 -1
  92. package/dist/wc/hf-rich-textarea.js +1 -1
  93. package/dist/wc/hf-rich-textarea.js.map +1 -1
  94. package/dist/wc/hf-steps.js +8 -8
  95. package/dist/wc/hf-steps.js.map +1 -1
  96. package/dist/wc/markdown-renderer.js +1 -1
  97. package/dist/wc/markdown-renderer.js.map +1 -1
  98. package/dist/wc/selection-group.js +26 -26
  99. package/dist/wc/selection-group.js.map +1 -1
  100. package/dist/wc/syntax-highlight.js +4 -4
  101. package/dist/wc/syntax-highlight.js.map +1 -1
  102. package/dist/wc/workflow-step-renderer.js +51 -51
  103. package/dist/wc/workflow-step-renderer.js.map +1 -1
  104. package/dist/wc-react/AICodeBlock.js +17 -17
  105. package/dist/wc-react/AICodeBlock.js.map +1 -1
  106. package/dist/wc-react/AIMermaidDiagram.js +16 -16
  107. package/dist/wc-react/AIMermaidDiagram.js.map +1 -1
  108. package/dist/wc-react/AIMessage.js +7 -7
  109. package/dist/wc-react/AIMessage.js.map +1 -1
  110. package/dist/wc-react/AISource.js +41 -41
  111. package/dist/wc-react/AISource.js.map +1 -1
  112. package/dist/wc-react/AIToolCall.js +6 -6
  113. package/dist/wc-react/AIToolCall.js.map +1 -1
  114. package/dist/wc-react/Breadcrumb.js +18 -18
  115. package/dist/wc-react/Breadcrumb.js.map +1 -1
  116. package/dist/wc-react/DropdownMenu.js +27 -27
  117. package/dist/wc-react/DropdownMenu.js.map +1 -1
  118. package/dist/wc-react/Kbd.js +17 -17
  119. package/dist/wc-react/Kbd.js.map +1 -1
  120. package/dist/wc-react/button.js +12 -12
  121. package/dist/wc-react/button.js.map +1 -1
  122. package/dist/wc-react/close-button.js +19 -19
  123. package/dist/wc-react/close-button.js.map +1 -1
  124. package/dist/wc-react/hf-ai-prompt-suggestion.js +1 -1
  125. package/dist/wc-react/hf-ai-prompt-suggestion.js.map +1 -1
  126. package/dist/wc-react/hf-ai-reasoning-block.js +1 -1
  127. package/dist/wc-react/hf-ai-reasoning-block.js.map +1 -1
  128. package/dist/wc-react/hf-ai-steps.js +33 -33
  129. package/dist/wc-react/hf-ai-steps.js.map +1 -1
  130. package/dist/wc-react/hf-ai-system-message.js +9 -9
  131. package/dist/wc-react/hf-ai-system-message.js.map +1 -1
  132. package/dist/wc-react/hf-code-snippet.js +3 -3
  133. package/dist/wc-react/hf-code-snippet.js.map +1 -1
  134. package/dist/wc-react/hf-command-menu.js +56 -56
  135. package/dist/wc-react/hf-command-menu.js.map +1 -1
  136. package/dist/wc-react/hf-data-table.js +3 -3
  137. package/dist/wc-react/hf-data-table.js.map +1 -1
  138. package/dist/wc-react/hf-display-value.js +58 -58
  139. package/dist/wc-react/hf-display-value.js.map +1 -1
  140. package/dist/wc-react/hf-nav-account-menu.js +7 -7
  141. package/dist/wc-react/hf-nav-account-menu.js.map +1 -1
  142. package/dist/wc-react/hf-rich-textarea.js +5 -5
  143. package/dist/wc-react/hf-rich-textarea.js.map +1 -1
  144. package/dist/wc-react/hf-steps.js +2 -2
  145. package/dist/wc-react/hf-steps.js.map +1 -1
  146. package/dist/wc-react/markdown-renderer.js +1 -1
  147. package/dist/wc-react/markdown-renderer.js.map +1 -1
  148. package/dist/wc-react/selection-group.js +7 -7
  149. package/dist/wc-react/selection-group.js.map +1 -1
  150. package/dist/wc-react/syntax-highlight.js +4 -4
  151. package/dist/wc-react/syntax-highlight.js.map +1 -1
  152. package/dist/wc-react/workflow-step-renderer.js +44 -44
  153. package/dist/wc-react/workflow-step-renderer.js.map +1 -1
  154. package/package.json +1 -1
  155. package/skills/humain-ui/SKILL.md +1 -1
  156. package/skills/humain-ui-wc/SKILL.md +1 -1
  157. package/skills/humain-ui-wc.skill +0 -0
  158. package/skills/humain-ui.skill +0 -0
  159. package/src/tokens.css +4 -0
@@ -1,43 +1,43 @@
1
1
  import { a as _ } from "./rolldown-runtime.js";
2
2
  import { i as S, t as $ } from "./vendor/react.js";
3
- import { n as s } from "./utils.js";
3
+ import { n as o } from "./utils.js";
4
4
  import { t as I } from "./createLucideIcon.js";
5
- import { t as d } from "./chevron-right.js";
5
+ import { t as l } from "./chevron-right.js";
6
6
  import { t as E } from "./ellipsis.js";
7
7
  import { t as P } from "./house.js";
8
8
  import { r as w } from "./useRenderElement.js";
9
- import { t as q } from "./dist.js";
10
- import { t as z } from "./useRender.js";
11
- var H = [["path", {
9
+ import { t as z } from "./dist.js";
10
+ import { t as H } from "./useRender.js";
11
+ var M = [["path", {
12
12
  d: "M22 2 2 22",
13
13
  key: "y4kqgn"
14
- }]], M = I("slash", H), u = /* @__PURE__ */ _(S(), 1), a = $();
14
+ }]], R = I("slash", M), u = /* @__PURE__ */ _(S(), 1), a = $();
15
15
  function c({ className: r, ...e }) {
16
16
  return /* @__PURE__ */ (0, a.jsx)("nav", {
17
17
  "aria-label": "breadcrumb",
18
18
  "data-slot": "breadcrumb",
19
- className: s(r),
19
+ className: o(r),
20
20
  ...e
21
21
  });
22
22
  }
23
23
  function b({ className: r, ...e }) {
24
24
  return /* @__PURE__ */ (0, a.jsx)("ol", {
25
25
  "data-slot": "breadcrumb-list",
26
- className: s("text-muted-foreground gap-1.5 text-sm sm:gap-2.5 flex flex-wrap items-center break-words", r),
26
+ className: o("text-muted-foreground gap-1.5 text-sm sm:gap-2.5 flex flex-wrap items-center break-words", r),
27
27
  ...e
28
28
  });
29
29
  }
30
30
  function p({ className: r, ...e }) {
31
31
  return /* @__PURE__ */ (0, a.jsx)("li", {
32
32
  "data-slot": "breadcrumb-item",
33
- className: s("gap-1.5 inline-flex items-center", r),
33
+ className: o("gap-1.5 inline-flex items-center", r),
34
34
  ...e
35
35
  });
36
36
  }
37
37
  function m({ className: r, render: e, ...t }) {
38
- return z({
38
+ return H({
39
39
  defaultTagName: "a",
40
- props: w({ className: s("hover:text-foreground transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring rounded-sm", r) }, t),
40
+ props: w({ className: o("hover:text-foreground transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring rounded-sm", r) }, t),
41
41
  render: e,
42
42
  state: { slot: "breadcrumb-link" }
43
43
  });
@@ -48,7 +48,7 @@ function f({ className: r, ...e }) {
48
48
  role: "link",
49
49
  "aria-disabled": "true",
50
50
  "aria-current": "page",
51
- className: s("text-foreground font-normal", r),
51
+ className: o("text-foreground font-normal", r),
52
52
  ...e
53
53
  });
54
54
  }
@@ -57,17 +57,17 @@ function x({ children: r, className: e, ...t }) {
57
57
  "data-slot": "breadcrumb-separator",
58
58
  role: "presentation",
59
59
  "aria-hidden": "true",
60
- className: s("[&>svg]:size-3.5", e),
60
+ className: o("[&>svg]:size-3.5", e),
61
61
  ...t,
62
- children: r ?? /* @__PURE__ */ (0, a.jsx)(d, { className: "rtl:rotate-180" })
62
+ children: r ?? /* @__PURE__ */ (0, a.jsx)(l, { className: "rtl:rotate-180" })
63
63
  });
64
64
  }
65
- function R({ className: r, ...e }) {
65
+ function V({ className: r, ...e }) {
66
66
  return /* @__PURE__ */ (0, a.jsxs)("span", {
67
67
  "data-slot": "breadcrumb-ellipsis",
68
68
  role: "presentation",
69
69
  "aria-hidden": "true",
70
- className: s("size-5 [&>svg]:size-4 flex items-center justify-center", r),
70
+ className: o("size-5 [&>svg]:size-4 flex items-center justify-center", r),
71
71
  ...e,
72
72
  children: [/* @__PURE__ */ (0, a.jsx)(E, {}), /* @__PURE__ */ (0, a.jsx)("span", {
73
73
  className: "sr-only",
@@ -81,8 +81,8 @@ p.displayName = "BreadcrumbItem";
81
81
  m.displayName = "BreadcrumbLink";
82
82
  f.displayName = "BreadcrumbPage";
83
83
  x.displayName = "BreadcrumbSeparator";
84
- R.displayName = "BreadcrumbEllipsis";
85
- var g = "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring rounded-sm", l = q('inline-flex items-center transition-[color,opacity,background-color,border-color,text-decoration-color] duration-200 ease-out whitespace-nowrap relative before:absolute before:inset-x-0 before:top-1/2 before:-translate-y-1/2 before:min-h-11 before:content-[""] sm:before:content-none motion-reduce:transition-none', {
84
+ V.displayName = "BreadcrumbEllipsis";
85
+ var g = "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring rounded-sm", d = z('inline-flex items-center transition-[color,opacity,background-color,border-color,text-decoration-color] duration-200 ease-out whitespace-nowrap relative before:absolute before:inset-x-0 before:top-1/2 before:-translate-y-1/2 before:min-h-11 before:content-[""] sm:before:content-none motion-reduce:transition-none', {
86
86
  variants: {
87
87
  variant: {
88
88
  text: "text-sm font-normal text-muted-foreground hover:text-foreground underline decoration-transparent underline-offset-4 hover:decoration-current/30",
@@ -130,42 +130,42 @@ var g = "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:ou
130
130
  variant: "text",
131
131
  isCurrent: !1
132
132
  }
133
- }), N = u.createContext({ separator: "chevron" }), V = () => u.useContext(N);
134
- function i({ className: r, separator: e = "chevron", ring: t = !1, children: o, ...n }) {
133
+ }), N = u.createContext({ separator: "chevron" }), q = () => u.useContext(N);
134
+ function i({ className: r, separator: e = "chevron", ring: t = !1, children: s, ...n }) {
135
135
  const L = u.useMemo(() => ({ separator: e }), [e]);
136
136
  return /* @__PURE__ */ (0, a.jsx)(N.Provider, {
137
137
  value: L,
138
138
  children: /* @__PURE__ */ (0, a.jsx)(c, {
139
- className: s(t && "inline-flex border border-ring/50 rounded-full px-2.5 py-0.5", r),
139
+ className: o(t && "inline-flex border border-ring/50 rounded-full px-2.5 py-0.5", r),
140
140
  ...n,
141
- children: o
141
+ children: s
142
142
  })
143
143
  });
144
144
  }
145
- function y({ className: r, ...e }) {
145
+ function v({ className: r, ...e }) {
146
146
  return /* @__PURE__ */ (0, a.jsx)(b, {
147
- className: s("flex-nowrap gap-1", r),
147
+ className: o("flex-nowrap gap-1", r),
148
148
  ...e
149
149
  });
150
150
  }
151
- function v({ className: r, ...e }) {
151
+ function y({ className: r, ...e }) {
152
152
  return /* @__PURE__ */ (0, a.jsx)(p, {
153
- className: s("gap-1", r),
153
+ className: o("gap-1", r),
154
154
  ...e
155
155
  });
156
156
  }
157
- function B({ className: r, variant: e = "text", isCurrent: t = !1, ...o }) {
157
+ function B({ className: r, variant: e = "text", isCurrent: t = !1, ...s }) {
158
158
  return /* @__PURE__ */ (0, a.jsx)(m, {
159
- className: s(l({
159
+ className: o(d({
160
160
  variant: e,
161
161
  isCurrent: t
162
162
  }), r),
163
- ...o
163
+ ...s
164
164
  });
165
165
  }
166
166
  function h({ className: r, variant: e = "text", ...t }) {
167
167
  return /* @__PURE__ */ (0, a.jsx)(f, {
168
- className: s(l({
168
+ className: o(d({
169
169
  variant: e,
170
170
  isCurrent: !0
171
171
  }), r),
@@ -173,11 +173,11 @@ function h({ className: r, variant: e = "text", ...t }) {
173
173
  });
174
174
  }
175
175
  function j({ className: r, type: e, ...t }) {
176
- const { separator: o } = V(), n = e ?? o;
176
+ const { separator: s } = q(), n = e ?? s;
177
177
  return /* @__PURE__ */ (0, a.jsx)(x, {
178
- className: s("[&>svg]:size-3.5 text-text-quaternary transition-opacity duration-200 ease-out motion-reduce:transition-none", r),
178
+ className: o("[&>svg]:size-3.5 text-muted-foreground transition-opacity duration-200 ease-out motion-reduce:transition-none", r),
179
179
  ...t,
180
- children: n === "slash" ? /* @__PURE__ */ (0, a.jsx)(M, {}) : /* @__PURE__ */ (0, a.jsx)(d, { className: "rtl:rotate-180" })
180
+ children: n === "slash" ? /* @__PURE__ */ (0, a.jsx)(R, {}) : /* @__PURE__ */ (0, a.jsx)(l, { className: "rtl:rotate-180" })
181
181
  });
182
182
  }
183
183
  function C({ className: r, variant: e = "text", ...t }) {
@@ -185,7 +185,7 @@ function C({ className: r, variant: e = "text", ...t }) {
185
185
  type: "button",
186
186
  "data-slot": "breadcrumb-ellipsis",
187
187
  "aria-label": "Show more breadcrumb items",
188
- className: s(l({
188
+ className: o(d({
189
189
  variant: e,
190
190
  isCurrent: !1
191
191
  }), `cursor-pointer hover:text-foreground ${g}`, r),
@@ -193,10 +193,10 @@ function C({ className: r, variant: e = "text", ...t }) {
193
193
  children: "…"
194
194
  });
195
195
  }
196
- function k({ className: r, variant: e = "text", srLabel: t = "Home", ...o }) {
196
+ function k({ className: r, variant: e = "text", srLabel: t = "Home", ...s }) {
197
197
  return /* @__PURE__ */ (0, a.jsxs)(m, {
198
- className: s(`group inline-flex items-center text-text-quaternary hover:text-secondary-foreground transition-colors duration-200 ease-out motion-reduce:transition-none ${g}`, e === "soft-badge" && "rounded-full px-1.5 py-0.5 bg-primary/10 text-primary", e === "outline-badge" && "rounded-full px-1.5 py-0.5 border border-muted-foreground/50", r),
199
- ...o,
198
+ className: o(`group inline-flex items-center text-muted-foreground hover:text-secondary-foreground transition-colors duration-200 ease-out motion-reduce:transition-none ${g}`, e === "soft-badge" && "rounded-full px-1.5 py-0.5 bg-primary/10 text-primary", e === "outline-badge" && "rounded-full px-1.5 py-0.5 border border-muted-foreground/50", r),
199
+ ...s,
200
200
  children: [/* @__PURE__ */ (0, a.jsx)(P, { className: "size-3.5 transition-transform duration-200 ease-out group-hover:scale-110 motion-reduce:transition-none" }), /* @__PURE__ */ (0, a.jsx)("span", {
201
201
  className: "sr-only",
202
202
  children: t
@@ -204,8 +204,8 @@ function k({ className: r, variant: e = "text", srLabel: t = "Home", ...o }) {
204
204
  });
205
205
  }
206
206
  i.displayName = "Breadcrumb";
207
- y.displayName = "BreadcrumbList";
208
- v.displayName = "BreadcrumbItem";
207
+ v.displayName = "BreadcrumbList";
208
+ y.displayName = "BreadcrumbItem";
209
209
  B.displayName = "BreadcrumbLink";
210
210
  h.displayName = "BreadcrumbPage";
211
211
  j.displayName = "BreadcrumbSeparator";
@@ -213,8 +213,8 @@ C.displayName = "BreadcrumbEllipsis";
213
213
  k.displayName = "BreadcrumbHomeLink";
214
214
  var W = Object.assign(i, {
215
215
  Root: i,
216
- List: y,
217
- Item: v,
216
+ List: v,
217
+ Item: y,
218
218
  Link: B,
219
219
  Page: h,
220
220
  Separator: j,
@@ -224,9 +224,9 @@ var W = Object.assign(i, {
224
224
  export {
225
225
  B as a,
226
226
  j as c,
227
- v as i,
227
+ y as i,
228
228
  C as n,
229
- y as o,
229
+ v as o,
230
230
  k as r,
231
231
  h as s,
232
232
  W as t
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumb.js","names":[],"sources":["../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/lucide-react@1.27.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/slash.mjs","../../src/components/ui/breadcrumb.tsx","../../src/components/molecules/navigation/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [[\"path\", { d: \"M22 2 2 22\", key: \"y4kqgn\" }]];\nconst Slash = createLucideIcon(\"slash\", __iconNode);\n\nexport { __iconNode, Slash as default };\n//# sourceMappingURL=slash.mjs.map\n","/** biome-ignore-all lint/a11y/useFocusableInteractive: BreadcrumbPage intentionally uses aria-disabled=\"true\" for current page, removing it from tab order */\n/** biome-ignore-all lint/a11y/useSemanticElements: BreadcrumbPage uses span with role=\"link\" for non-interactive current page indicator per WAI-ARIA breadcrumb pattern */\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport { useRender } from '@base-ui/react/use-render';\nimport { ChevronRight, MoreHorizontal } from 'lucide-react';\nimport type * as React from 'react';\nimport { cn } from '@/lib/utils';\n\nfunction Breadcrumb({ className, ...props }: React.ComponentProps<'nav'>) {\n return (\n <nav\n aria-label=\"breadcrumb\"\n data-slot=\"breadcrumb\"\n className={cn(className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<'ol'>) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n 'text-muted-foreground gap-1.5 text-sm sm:gap-2.5 flex flex-wrap items-center break-words',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn('gap-1.5 inline-flex items-center', className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbLink({\n className,\n render,\n ...props\n}: useRender.ComponentProps<'a'> & { children?: React.ReactNode }) {\n return useRender({\n defaultTagName: 'a',\n props: mergeProps<'a'>(\n {\n className: cn(\n 'hover:text-foreground transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring rounded-sm',\n className,\n ),\n },\n props,\n ),\n render,\n state: {\n slot: 'breadcrumb-link',\n },\n });\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('text-foreground font-normal', className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('[&>svg]:size-3.5', className)}\n {...props}\n >\n {children ?? <ChevronRight className=\"rtl:rotate-180\" />}\n </li>\n );\n}\n\nfunction BreadcrumbEllipsis({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\n 'size-5 [&>svg]:size-4 flex items-center justify-center',\n className,\n )}\n {...props}\n >\n <MoreHorizontal />\n <span className=\"sr-only\">More</span>\n </span>\n );\n}\n\nBreadcrumb.displayName = 'Breadcrumb';\nBreadcrumbList.displayName = 'BreadcrumbList';\nBreadcrumbItem.displayName = 'BreadcrumbItem';\nBreadcrumbLink.displayName = 'BreadcrumbLink';\nBreadcrumbPage.displayName = 'BreadcrumbPage';\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator';\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis';\n\nexport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n};\n","/** biome-ignore-all lint/a11y/useFocusableInteractive: BreadcrumbPage intentionally uses aria-disabled=\"true\" for current page, removing it from tab order */\n/** biome-ignore-all lint/a11y/useSemanticElements: BreadcrumbPage uses span with role=\"link\" for non-interactive current page indicator per WAI-ARIA breadcrumb pattern */\nimport { cva } from 'class-variance-authority';\nimport { ChevronRight, Home, Slash } from 'lucide-react';\nimport * as React from 'react';\nimport {\n Breadcrumb as BreadcrumbBase,\n BreadcrumbItem as BreadcrumbItemBase,\n BreadcrumbLink as BreadcrumbLinkBase,\n BreadcrumbList as BreadcrumbListBase,\n BreadcrumbPage as BreadcrumbPageBase,\n BreadcrumbSeparator as BreadcrumbSeparatorBase,\n} from '@/components/ui/breadcrumb';\nimport { cn } from '@/lib/utils';\n\nconst FOCUS_RING =\n 'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring rounded-sm';\n\n/* -----------------------------------------------------------------------------\n * Breadcrumb Variants\n * -------------------------------------------------------------------------- */\n\nconst breadcrumbItemVariants = cva(\n 'inline-flex items-center transition-[color,opacity,background-color,border-color,text-decoration-color] duration-200 ease-out whitespace-nowrap relative before:absolute before:inset-x-0 before:top-1/2 before:-translate-y-1/2 before:min-h-11 before:content-[\"\"] sm:before:content-none motion-reduce:transition-none',\n {\n variants: {\n variant: {\n text: 'text-sm font-normal text-muted-foreground hover:text-foreground underline decoration-transparent underline-offset-4 hover:decoration-current/30',\n 'soft-badge':\n 'text-xs font-normal text-primary rounded-full px-2 py-0.5 bg-primary/10 hover:bg-primary/15',\n 'outline-badge':\n 'text-xs font-normal text-foreground rounded-full px-2 py-0.5 border border-muted-foreground/50 hover:border-muted-foreground',\n },\n isCurrent: {\n true: '',\n false: '',\n },\n },\n compoundVariants: [\n {\n variant: 'text',\n isCurrent: true,\n className: 'text-foreground no-underline',\n },\n {\n variant: 'text',\n isCurrent: false,\n className: 'text-muted-foreground',\n },\n {\n variant: 'soft-badge',\n isCurrent: true,\n className: 'bg-primary/10',\n },\n {\n variant: 'soft-badge',\n isCurrent: false,\n className: 'bg-primary/10 opacity-50',\n },\n {\n variant: 'outline-badge',\n isCurrent: true,\n className: 'border-primary text-foreground',\n },\n {\n variant: 'outline-badge',\n isCurrent: false,\n className: 'border-muted-foreground/50 opacity-50',\n },\n ],\n defaultVariants: {\n variant: 'text',\n isCurrent: false,\n },\n },\n);\n\n/* -----------------------------------------------------------------------------\n * Context for sharing separator type\n * -------------------------------------------------------------------------- */\n\ntype SeparatorType = 'chevron' | 'slash';\n\ntype BreadcrumbContextValue = {\n separator: SeparatorType;\n};\n\nconst BreadcrumbContext = React.createContext<BreadcrumbContextValue>({\n separator: 'chevron',\n});\n\nconst useBreadcrumbContext = () => React.useContext(BreadcrumbContext);\n\n/* -----------------------------------------------------------------------------\n * Breadcrumb Component\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbProps\n extends React.ComponentProps<typeof BreadcrumbBase> {\n separator?: SeparatorType;\n ring?: boolean;\n}\n\nfunction Breadcrumb({\n className,\n separator = 'chevron',\n ring = false,\n children,\n ...props\n}: BreadcrumbProps) {\n const contextValue = React.useMemo(() => ({ separator }), [separator]);\n\n return (\n <BreadcrumbContext.Provider value={contextValue}>\n <BreadcrumbBase\n className={cn(\n ring &&\n 'inline-flex border border-ring/50 rounded-full px-2.5 py-0.5',\n className,\n )}\n {...props}\n >\n {children}\n </BreadcrumbBase>\n </BreadcrumbContext.Provider>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbList Component\n * -------------------------------------------------------------------------- */\n\nexport type BreadcrumbListProps = React.ComponentProps<\n typeof BreadcrumbListBase\n>;\n\nfunction BreadcrumbList({ className, ...props }: BreadcrumbListProps) {\n return (\n <BreadcrumbListBase\n className={cn('flex-nowrap gap-1', className)}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbItem Component\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbItemProps\n extends Omit<React.ComponentProps<typeof BreadcrumbItemBase>, 'className'> {\n className?: string;\n}\n\nfunction BreadcrumbItem({ className, ...props }: BreadcrumbItemProps) {\n return <BreadcrumbItemBase className={cn('gap-1', className)} {...props} />;\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbLink Component\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbLinkProps\n extends React.ComponentProps<typeof BreadcrumbLinkBase> {\n variant?: 'text' | 'soft-badge' | 'outline-badge';\n isCurrent?: boolean;\n}\n\nfunction BreadcrumbLink({\n className,\n variant = 'text',\n isCurrent = false,\n ...props\n}: BreadcrumbLinkProps) {\n return (\n <BreadcrumbLinkBase\n className={cn(breadcrumbItemVariants({ variant, isCurrent }), className)}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbPage Component (Current Page)\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbPageProps\n extends React.ComponentProps<typeof BreadcrumbPageBase> {\n variant?: 'text' | 'soft-badge' | 'outline-badge';\n}\n\nfunction BreadcrumbPage({\n className,\n variant = 'text',\n ...props\n}: BreadcrumbPageProps) {\n return (\n <BreadcrumbPageBase\n className={cn(\n breadcrumbItemVariants({ variant, isCurrent: true }),\n className,\n )}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbSeparator Component\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbSeparatorProps\n extends Omit<\n React.ComponentProps<typeof BreadcrumbSeparatorBase>,\n 'children'\n > {\n type?: SeparatorType;\n}\n\nfunction BreadcrumbSeparator({\n className,\n type,\n ...props\n}: BreadcrumbSeparatorProps) {\n const { separator } = useBreadcrumbContext();\n const separatorType = type ?? separator;\n\n return (\n <BreadcrumbSeparatorBase\n className={cn(\n '[&>svg]:size-3.5 text-text-quaternary transition-opacity duration-200 ease-out motion-reduce:transition-none',\n className,\n )}\n {...props}\n >\n {separatorType === 'slash' ? (\n <Slash />\n ) : (\n <ChevronRight className=\"rtl:rotate-180\" />\n )}\n </BreadcrumbSeparatorBase>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbEllipsis Component\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbEllipsisProps\n extends React.ComponentProps<'button'> {\n variant?: 'text' | 'soft-badge' | 'outline-badge';\n}\n\nfunction BreadcrumbEllipsis({\n className,\n variant = 'text',\n ...props\n}: BreadcrumbEllipsisProps) {\n return (\n <button\n type=\"button\"\n data-slot=\"breadcrumb-ellipsis\"\n aria-label=\"Show more breadcrumb items\"\n className={cn(\n breadcrumbItemVariants({ variant, isCurrent: false }),\n `cursor-pointer hover:text-foreground ${FOCUS_RING}`,\n className,\n )}\n {...props}\n >\n &#8230;\n </button>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbHomeLink Component (Home Icon)\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbHomeLinkProps\n extends Omit<BreadcrumbLinkProps, 'children'> {\n srLabel?: string;\n}\n\nfunction BreadcrumbHomeLink({\n className,\n variant = 'text',\n srLabel = 'Home',\n ...props\n}: BreadcrumbHomeLinkProps) {\n return (\n <BreadcrumbLinkBase\n className={cn(\n `group inline-flex items-center text-text-quaternary hover:text-secondary-foreground transition-colors duration-200 ease-out motion-reduce:transition-none ${FOCUS_RING}`,\n variant === 'soft-badge' &&\n 'rounded-full px-1.5 py-0.5 bg-primary/10 text-primary',\n variant === 'outline-badge' &&\n 'rounded-full px-1.5 py-0.5 border border-muted-foreground/50',\n className,\n )}\n {...props}\n >\n <Home className=\"size-3.5 transition-transform duration-200 ease-out group-hover:scale-110 motion-reduce:transition-none\" />\n <span className=\"sr-only\">{srLabel}</span>\n </BreadcrumbLinkBase>\n );\n}\n\nBreadcrumb.displayName = 'Breadcrumb';\nBreadcrumbList.displayName = 'BreadcrumbList';\nBreadcrumbItem.displayName = 'BreadcrumbItem';\nBreadcrumbLink.displayName = 'BreadcrumbLink';\nBreadcrumbPage.displayName = 'BreadcrumbPage';\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator';\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis';\nBreadcrumbHomeLink.displayName = 'BreadcrumbHomeLink';\n\n/**\n * Breadcrumb component with dot notation for compound parts.\n *\n * @example\n * ```tsx\n * <Breadcrumb>\n * <Breadcrumb.List>\n * <Breadcrumb.Item>\n * <Breadcrumb.Link href=\"/\">Home</Breadcrumb.Link>\n * </Breadcrumb.Item>\n * <Breadcrumb.Separator />\n * <Breadcrumb.Item>\n * <Breadcrumb.Page>Current</Breadcrumb.Page>\n * </Breadcrumb.Item>\n * </Breadcrumb.List>\n * </Breadcrumb>\n * ```\n */\nconst BreadcrumbCompound = Object.assign(Breadcrumb, {\n Root: Breadcrumb,\n List: BreadcrumbList,\n Item: BreadcrumbItem,\n Link: BreadcrumbLink,\n Page: BreadcrumbPage,\n Separator: BreadcrumbSeparator,\n Ellipsis: BreadcrumbEllipsis,\n HomeLink: BreadcrumbHomeLink,\n});\n\nexport {\n BreadcrumbCompound as Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbHomeLink,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n breadcrumbItemVariants,\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"Breadcrumb.js","names":[],"sources":["../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/lucide-react@1.27.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/slash.mjs","../../src/components/ui/breadcrumb.tsx","../../src/components/molecules/navigation/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["/**\n * @license lucide-react v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [[\"path\", { d: \"M22 2 2 22\", key: \"y4kqgn\" }]];\nconst Slash = createLucideIcon(\"slash\", __iconNode);\n\nexport { __iconNode, Slash as default };\n//# sourceMappingURL=slash.mjs.map\n","/** biome-ignore-all lint/a11y/useFocusableInteractive: BreadcrumbPage intentionally uses aria-disabled=\"true\" for current page, removing it from tab order */\n/** biome-ignore-all lint/a11y/useSemanticElements: BreadcrumbPage uses span with role=\"link\" for non-interactive current page indicator per WAI-ARIA breadcrumb pattern */\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport { useRender } from '@base-ui/react/use-render';\nimport { ChevronRight, MoreHorizontal } from 'lucide-react';\nimport type * as React from 'react';\nimport { cn } from '@/lib/utils';\n\nfunction Breadcrumb({ className, ...props }: React.ComponentProps<'nav'>) {\n return (\n <nav\n aria-label=\"breadcrumb\"\n data-slot=\"breadcrumb\"\n className={cn(className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<'ol'>) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n 'text-muted-foreground gap-1.5 text-sm sm:gap-2.5 flex flex-wrap items-center break-words',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn('gap-1.5 inline-flex items-center', className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbLink({\n className,\n render,\n ...props\n}: useRender.ComponentProps<'a'> & { children?: React.ReactNode }) {\n return useRender({\n defaultTagName: 'a',\n props: mergeProps<'a'>(\n {\n className: cn(\n 'hover:text-foreground transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring rounded-sm',\n className,\n ),\n },\n props,\n ),\n render,\n state: {\n slot: 'breadcrumb-link',\n },\n });\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('text-foreground font-normal', className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('[&>svg]:size-3.5', className)}\n {...props}\n >\n {children ?? <ChevronRight className=\"rtl:rotate-180\" />}\n </li>\n );\n}\n\nfunction BreadcrumbEllipsis({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\n 'size-5 [&>svg]:size-4 flex items-center justify-center',\n className,\n )}\n {...props}\n >\n <MoreHorizontal />\n <span className=\"sr-only\">More</span>\n </span>\n );\n}\n\nBreadcrumb.displayName = 'Breadcrumb';\nBreadcrumbList.displayName = 'BreadcrumbList';\nBreadcrumbItem.displayName = 'BreadcrumbItem';\nBreadcrumbLink.displayName = 'BreadcrumbLink';\nBreadcrumbPage.displayName = 'BreadcrumbPage';\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator';\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis';\n\nexport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n};\n","/** biome-ignore-all lint/a11y/useFocusableInteractive: BreadcrumbPage intentionally uses aria-disabled=\"true\" for current page, removing it from tab order */\n/** biome-ignore-all lint/a11y/useSemanticElements: BreadcrumbPage uses span with role=\"link\" for non-interactive current page indicator per WAI-ARIA breadcrumb pattern */\nimport { cva } from 'class-variance-authority';\nimport { ChevronRight, Home, Slash } from 'lucide-react';\nimport * as React from 'react';\nimport {\n Breadcrumb as BreadcrumbBase,\n BreadcrumbItem as BreadcrumbItemBase,\n BreadcrumbLink as BreadcrumbLinkBase,\n BreadcrumbList as BreadcrumbListBase,\n BreadcrumbPage as BreadcrumbPageBase,\n BreadcrumbSeparator as BreadcrumbSeparatorBase,\n} from '@/components/ui/breadcrumb';\nimport { cn } from '@/lib/utils';\n\nconst FOCUS_RING =\n 'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring rounded-sm';\n\n/* -----------------------------------------------------------------------------\n * Breadcrumb Variants\n * -------------------------------------------------------------------------- */\n\nconst breadcrumbItemVariants = cva(\n 'inline-flex items-center transition-[color,opacity,background-color,border-color,text-decoration-color] duration-200 ease-out whitespace-nowrap relative before:absolute before:inset-x-0 before:top-1/2 before:-translate-y-1/2 before:min-h-11 before:content-[\"\"] sm:before:content-none motion-reduce:transition-none',\n {\n variants: {\n variant: {\n text: 'text-sm font-normal text-muted-foreground hover:text-foreground underline decoration-transparent underline-offset-4 hover:decoration-current/30',\n 'soft-badge':\n 'text-xs font-normal text-primary rounded-full px-2 py-0.5 bg-primary/10 hover:bg-primary/15',\n 'outline-badge':\n 'text-xs font-normal text-foreground rounded-full px-2 py-0.5 border border-muted-foreground/50 hover:border-muted-foreground',\n },\n isCurrent: {\n true: '',\n false: '',\n },\n },\n compoundVariants: [\n {\n variant: 'text',\n isCurrent: true,\n className: 'text-foreground no-underline',\n },\n {\n variant: 'text',\n isCurrent: false,\n className: 'text-muted-foreground',\n },\n {\n variant: 'soft-badge',\n isCurrent: true,\n className: 'bg-primary/10',\n },\n {\n variant: 'soft-badge',\n isCurrent: false,\n className: 'bg-primary/10 opacity-50',\n },\n {\n variant: 'outline-badge',\n isCurrent: true,\n className: 'border-primary text-foreground',\n },\n {\n variant: 'outline-badge',\n isCurrent: false,\n className: 'border-muted-foreground/50 opacity-50',\n },\n ],\n defaultVariants: {\n variant: 'text',\n isCurrent: false,\n },\n },\n);\n\n/* -----------------------------------------------------------------------------\n * Context for sharing separator type\n * -------------------------------------------------------------------------- */\n\ntype SeparatorType = 'chevron' | 'slash';\n\ntype BreadcrumbContextValue = {\n separator: SeparatorType;\n};\n\nconst BreadcrumbContext = React.createContext<BreadcrumbContextValue>({\n separator: 'chevron',\n});\n\nconst useBreadcrumbContext = () => React.useContext(BreadcrumbContext);\n\n/* -----------------------------------------------------------------------------\n * Breadcrumb Component\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbProps\n extends React.ComponentProps<typeof BreadcrumbBase> {\n separator?: SeparatorType;\n ring?: boolean;\n}\n\nfunction Breadcrumb({\n className,\n separator = 'chevron',\n ring = false,\n children,\n ...props\n}: BreadcrumbProps) {\n const contextValue = React.useMemo(() => ({ separator }), [separator]);\n\n return (\n <BreadcrumbContext.Provider value={contextValue}>\n <BreadcrumbBase\n className={cn(\n ring &&\n 'inline-flex border border-ring/50 rounded-full px-2.5 py-0.5',\n className,\n )}\n {...props}\n >\n {children}\n </BreadcrumbBase>\n </BreadcrumbContext.Provider>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbList Component\n * -------------------------------------------------------------------------- */\n\nexport type BreadcrumbListProps = React.ComponentProps<\n typeof BreadcrumbListBase\n>;\n\nfunction BreadcrumbList({ className, ...props }: BreadcrumbListProps) {\n return (\n <BreadcrumbListBase\n className={cn('flex-nowrap gap-1', className)}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbItem Component\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbItemProps\n extends Omit<React.ComponentProps<typeof BreadcrumbItemBase>, 'className'> {\n className?: string;\n}\n\nfunction BreadcrumbItem({ className, ...props }: BreadcrumbItemProps) {\n return <BreadcrumbItemBase className={cn('gap-1', className)} {...props} />;\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbLink Component\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbLinkProps\n extends React.ComponentProps<typeof BreadcrumbLinkBase> {\n variant?: 'text' | 'soft-badge' | 'outline-badge';\n isCurrent?: boolean;\n}\n\nfunction BreadcrumbLink({\n className,\n variant = 'text',\n isCurrent = false,\n ...props\n}: BreadcrumbLinkProps) {\n return (\n <BreadcrumbLinkBase\n className={cn(breadcrumbItemVariants({ variant, isCurrent }), className)}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbPage Component (Current Page)\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbPageProps\n extends React.ComponentProps<typeof BreadcrumbPageBase> {\n variant?: 'text' | 'soft-badge' | 'outline-badge';\n}\n\nfunction BreadcrumbPage({\n className,\n variant = 'text',\n ...props\n}: BreadcrumbPageProps) {\n return (\n <BreadcrumbPageBase\n className={cn(\n breadcrumbItemVariants({ variant, isCurrent: true }),\n className,\n )}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbSeparator Component\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbSeparatorProps\n extends Omit<\n React.ComponentProps<typeof BreadcrumbSeparatorBase>,\n 'children'\n > {\n type?: SeparatorType;\n}\n\nfunction BreadcrumbSeparator({\n className,\n type,\n ...props\n}: BreadcrumbSeparatorProps) {\n const { separator } = useBreadcrumbContext();\n const separatorType = type ?? separator;\n\n return (\n <BreadcrumbSeparatorBase\n className={cn(\n '[&>svg]:size-3.5 text-muted-foreground transition-opacity duration-200 ease-out motion-reduce:transition-none',\n className,\n )}\n {...props}\n >\n {separatorType === 'slash' ? (\n <Slash />\n ) : (\n <ChevronRight className=\"rtl:rotate-180\" />\n )}\n </BreadcrumbSeparatorBase>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbEllipsis Component\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbEllipsisProps\n extends React.ComponentProps<'button'> {\n variant?: 'text' | 'soft-badge' | 'outline-badge';\n}\n\nfunction BreadcrumbEllipsis({\n className,\n variant = 'text',\n ...props\n}: BreadcrumbEllipsisProps) {\n return (\n <button\n type=\"button\"\n data-slot=\"breadcrumb-ellipsis\"\n aria-label=\"Show more breadcrumb items\"\n className={cn(\n breadcrumbItemVariants({ variant, isCurrent: false }),\n `cursor-pointer hover:text-foreground ${FOCUS_RING}`,\n className,\n )}\n {...props}\n >\n &#8230;\n </button>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * BreadcrumbHomeLink Component (Home Icon)\n * -------------------------------------------------------------------------- */\n\nexport interface BreadcrumbHomeLinkProps\n extends Omit<BreadcrumbLinkProps, 'children'> {\n srLabel?: string;\n}\n\nfunction BreadcrumbHomeLink({\n className,\n variant = 'text',\n srLabel = 'Home',\n ...props\n}: BreadcrumbHomeLinkProps) {\n return (\n <BreadcrumbLinkBase\n className={cn(\n `group inline-flex items-center text-muted-foreground hover:text-secondary-foreground transition-colors duration-200 ease-out motion-reduce:transition-none ${FOCUS_RING}`,\n variant === 'soft-badge' &&\n 'rounded-full px-1.5 py-0.5 bg-primary/10 text-primary',\n variant === 'outline-badge' &&\n 'rounded-full px-1.5 py-0.5 border border-muted-foreground/50',\n className,\n )}\n {...props}\n >\n <Home className=\"size-3.5 transition-transform duration-200 ease-out group-hover:scale-110 motion-reduce:transition-none\" />\n <span className=\"sr-only\">{srLabel}</span>\n </BreadcrumbLinkBase>\n );\n}\n\nBreadcrumb.displayName = 'Breadcrumb';\nBreadcrumbList.displayName = 'BreadcrumbList';\nBreadcrumbItem.displayName = 'BreadcrumbItem';\nBreadcrumbLink.displayName = 'BreadcrumbLink';\nBreadcrumbPage.displayName = 'BreadcrumbPage';\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator';\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis';\nBreadcrumbHomeLink.displayName = 'BreadcrumbHomeLink';\n\n/**\n * Breadcrumb component with dot notation for compound parts.\n *\n * @example\n * ```tsx\n * <Breadcrumb>\n * <Breadcrumb.List>\n * <Breadcrumb.Item>\n * <Breadcrumb.Link href=\"/\">Home</Breadcrumb.Link>\n * </Breadcrumb.Item>\n * <Breadcrumb.Separator />\n * <Breadcrumb.Item>\n * <Breadcrumb.Page>Current</Breadcrumb.Page>\n * </Breadcrumb.Item>\n * </Breadcrumb.List>\n * </Breadcrumb>\n * ```\n */\nconst BreadcrumbCompound = Object.assign(Breadcrumb, {\n Root: Breadcrumb,\n List: BreadcrumbList,\n Item: BreadcrumbItem,\n Link: BreadcrumbLink,\n Page: BreadcrumbPage,\n Separator: BreadcrumbSeparator,\n Ellipsis: BreadcrumbEllipsis,\n HomeLink: BreadcrumbHomeLink,\n});\n\nexport {\n BreadcrumbCompound as Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbHomeLink,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n breadcrumbItemVariants,\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -4,7 +4,7 @@ import { n as d } from "./utils.js";
4
4
  import { t as X } from "./check.js";
5
5
  import { t as Ee } from "./chevron-right.js";
6
6
  import { c as $, r as Be, t as Ge, u as He } from "./useRenderElement.js";
7
- import { A as Ae, M as Le, N as Ue, Q as q, i as Y, j as qe, tt as Ye, v as Ke } from "./popupStateMapping.js";
7
+ import { A as Ae, M as Le, N as Ue, Q as Y, i as q, j as Ye, tt as qe, v as Ke } from "./popupStateMapping.js";
8
8
  import { r as Xe, t as $e } from "./useStableCallback.js";
9
9
  import { n as J } from "./useTimeout.js";
10
10
  import { c as Je, f as Qe, p as We } from "./floating-ui.utils.dom.js";
@@ -45,7 +45,7 @@ function Tt(e) {
45
45
  r
46
46
  ]);
47
47
  }
48
- var t = ze(), N = 2, Rt = Ye(function(o, n) {
48
+ var t = ze(), N = 2, Rt = qe(function(o, n) {
49
49
  const { render: r, className: a, style: i, disabled: g = !1, nativeButton: j = !0, id: T, openOnHover: b, delay: fe = 100, closeDelay: F = 0, handle: ge, payload: xe, ...be } = o, we = Q(!0), s = ge?.store ?? we?.store;
50
50
  if (!s) throw new Error(He(85));
51
51
  const p = ot(T), Me = s.useState("isTriggerActive", p), R = s.useState("floatingRootContext"), l = s.useState("isOpenedByTrigger", p), ve = s.useState("triggerPopupId", p), v = u.useRef(null), c = St(), he = rt(!0), O = Le(), h = u.useMemo(() => O ?? new Ue(), [O]), { registerTrigger: ye, isMountedByThisTrigger: z } = Ke(p, v, s, {
@@ -54,7 +54,7 @@ var t = ze(), N = 2, Rt = Ye(function(o, n) {
54
54
  parent: c,
55
55
  floatingTreeRoot: h,
56
56
  floatingNodeId: Ae(h),
57
- floatingParentNodeId: qe(),
57
+ floatingParentNodeId: Ye(),
58
58
  keyboardEventRelay: he?.relayKeyboardEvent
59
59
  }), m = c.type === "menubar", Ne = s.useState("disabled"), w = g || Ne || m && c.context.disabled, { getButtonProps: De, buttonRef: je } = st({
60
60
  disabled: w,
@@ -135,7 +135,7 @@ var t = ze(), N = 2, Rt = Ye(function(o, n) {
135
135
  De
136
136
  ], U = Ge("button", o, {
137
137
  enabled: !m,
138
- stateAttributesMapping: Y,
138
+ stateAttributesMapping: q,
139
139
  state: H,
140
140
  ref: A,
141
141
  props: L
@@ -148,14 +148,14 @@ var t = ze(), N = 2, Rt = Ye(function(o, n) {
148
148
  state: H,
149
149
  refs: A,
150
150
  props: L,
151
- stateAttributesMapping: Y
151
+ stateAttributesMapping: q
152
152
  }) : l ? /* @__PURE__ */ (0, t.jsxs)(u.Fragment, { children: [
153
- /* @__PURE__ */ (0, t.jsx)(q, {
153
+ /* @__PURE__ */ (0, t.jsx)(Y, {
154
154
  ref: ke,
155
155
  onFocus: Pe
156
156
  }, `${p}-pre-focus-guard`),
157
157
  /* @__PURE__ */ (0, t.jsx)(u.Fragment, { children: U }, p),
158
- /* @__PURE__ */ (0, t.jsx)(q, {
158
+ /* @__PURE__ */ (0, t.jsx)(Y, {
159
159
  ref: s.context.triggerFocusTargetRef,
160
160
  onFocus: _e
161
161
  }, `${p}-post-focus-guard`)
@@ -343,7 +343,7 @@ function de({ className: e, inset: o, ...n }) {
343
343
  return /* @__PURE__ */ (0, t.jsx)(ft, {
344
344
  "data-slot": "dropdown-menu-label",
345
345
  "data-inset": o,
346
- className: d("px-4 py-2 text-xs font-medium text-text-quaternary uppercase tracking-wider", "data-[inset]:ps-8", e),
346
+ className: d("px-4 py-2 text-xs font-medium text-secondary-foreground uppercase tracking-wider", "data-[inset]:ps-8", e),
347
347
  ...n
348
348
  });
349
349
  }
@@ -359,7 +359,7 @@ function ce({ className: e, icon: o, shortcut: n, destructive: r = !1, render: a
359
359
  ...T,
360
360
  children: [
361
361
  o && /* @__PURE__ */ (0, t.jsx)("span", {
362
- className: d("size-4 shrink-0 transition-colors duration-150", b ? "text-destructive" : "text-text-quaternary group-focus/dropdown-menu-item:text-secondary-foreground"),
362
+ className: d("size-4 shrink-0 transition-colors duration-150", b ? "text-destructive" : "text-current"),
363
363
  children: o
364
364
  }),
365
365
  /* @__PURE__ */ (0, t.jsx)("span", {
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMenu.js","names":["_formatErrorMessage","REASONS.cancelOpen"],"sources":["../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/@base-ui+react@1.6.0+1c528c44af60ea5b/node_modules/@base-ui/react/menu/utils/findRootOwnerId.mjs","../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/@base-ui+react@1.6.0+1c528c44af60ea5b/node_modules/@base-ui/react/utils/useMixedToggleClickHandler.mjs","../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/@base-ui+react@1.6.0+1c528c44af60ea5b/node_modules/@base-ui/react/menu/trigger/MenuTrigger.mjs","../../src/components/organisms/menus/DropdownMenu/DropdownMenu.tsx"],"sourcesContent":["import { getParentNode, isHTMLElement, isLastTraversableNode } from '@floating-ui/utils/dom';\nexport function findRootOwnerId(node) {\n if (isHTMLElement(node) && node.hasAttribute('data-rootownerid')) {\n return node.getAttribute('data-rootownerid') ?? undefined;\n }\n if (isLastTraversableNode(node)) {\n return undefined;\n }\n return findRootOwnerId(getParentNode(node));\n}","'use client';\n\nimport * as React from 'react';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\n/**\n * Returns `click` and `mousedown` handlers that fix the behavior of triggers of popups that are toggled by different events.\n * For example, a button that opens a popup on mousedown and closes it on click.\n * This hook prevents the popup from closing immediately after the mouse button is released.\n */\nexport function useMixedToggleClickHandler(params) {\n const {\n enabled = true,\n mouseDownAction,\n open\n } = params;\n const ignoreClickRef = React.useRef(false);\n return React.useMemo(() => {\n if (!enabled) {\n return EMPTY_OBJECT;\n }\n return {\n onMouseDown: event => {\n if (mouseDownAction === 'open' && !open || mouseDownAction === 'close' && open) {\n ignoreClickRef.current = true;\n ownerDocument(event.currentTarget).addEventListener('click', () => {\n ignoreClickRef.current = false;\n }, {\n once: true\n });\n }\n },\n onClick: event => {\n if (ignoreClickRef.current) {\n ignoreClickRef.current = false;\n event.preventBaseUIHandler();\n }\n }\n };\n }, [enabled, mouseDownAction, open]);\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nimport { useTimeout } from '@base-ui/utils/useTimeout';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { fastComponentRef } from '@base-ui/utils/fastHooks';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { safePolygon, useClick, useFloatingTree, useFocus, useHoverReferenceInteraction, useFloatingNodeId, useFloatingParentNodeId } from \"../../floating-ui-react/index.mjs\";\nimport { FloatingTreeStore } from \"../../floating-ui-react/components/FloatingTreeStore.mjs\";\nimport { contains } from \"../../floating-ui-react/utils.mjs\";\nimport { useMenuRootContext } from \"../root/MenuRootContext.mjs\";\nimport { pressableTriggerOpenStateMapping } from \"../../utils/popupStateMapping.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useButton } from \"../../internals/use-button/useButton.mjs\";\nimport { getPseudoElementBounds } from \"../../utils/getPseudoElementBounds.mjs\";\nimport { CompositeItem } from \"../../internals/composite/item/CompositeItem.mjs\";\nimport { useCompositeRootContext } from \"../../internals/composite/root/CompositeRootContext.mjs\";\nimport { findRootOwnerId } from \"../utils/findRootOwnerId.mjs\";\nimport { useTriggerDataForwarding } from \"../../utils/popups/index.mjs\";\nimport { useTriggerFocusGuards } from \"../../utils/popups/useTriggerFocusGuards.mjs\";\nimport { useBaseUiId } from \"../../internals/useBaseUiId.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { useMixedToggleClickHandler } from \"../../utils/useMixedToggleClickHandler.mjs\";\nimport { useContextMenuRootContext } from \"../../context-menu/root/ContextMenuRootContext.mjs\";\nimport { useMenubarContext } from \"../../menubar/MenubarContext.mjs\";\nimport { PATIENT_CLICK_THRESHOLD } from \"../../internals/constants.mjs\";\nimport { FocusGuard } from \"../../utils/FocusGuard.mjs\";\nimport { mergeProps } from \"../../merge-props/index.mjs\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst BOUNDARY_OFFSET = 2;\n\n/**\n * A button that opens the menu.\n * Renders a `<button>` element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nexport const MenuTrigger = fastComponentRef(function MenuTrigger(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n disabled: disabledProp = false,\n nativeButton = true,\n id: idProp,\n openOnHover: openOnHoverProp,\n delay = 100,\n closeDelay = 0,\n handle,\n payload,\n ...elementProps\n } = componentProps;\n const rootContext = useMenuRootContext(true);\n const store = handle?.store ?? rootContext?.store;\n if (!store) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: <Menu.Trigger> must be either used within a <Menu.Root> component or provided with a handle.' : _formatErrorMessage(85));\n }\n const thisTriggerId = useBaseUiId(idProp);\n const isTriggerActive = store.useState('isTriggerActive', thisTriggerId);\n const floatingRootContext = store.useState('floatingRootContext');\n const isOpenedByThisTrigger = store.useState('isOpenedByTrigger', thisTriggerId);\n const popupId = store.useState('triggerPopupId', thisTriggerId);\n const triggerElementRef = React.useRef(null);\n const parent = useMenuParent();\n const compositeRootContext = useCompositeRootContext(true);\n const floatingTreeRootFromContext = useFloatingTree();\n const floatingTreeRoot = React.useMemo(() => {\n return floatingTreeRootFromContext ?? new FloatingTreeStore();\n }, [floatingTreeRootFromContext]);\n const floatingNodeId = useFloatingNodeId(floatingTreeRoot);\n const floatingParentNodeId = useFloatingParentNodeId();\n const {\n registerTrigger,\n isMountedByThisTrigger\n } = useTriggerDataForwarding(thisTriggerId, triggerElementRef, store, {\n payload,\n closeDelay,\n parent,\n floatingTreeRoot,\n floatingNodeId,\n floatingParentNodeId,\n keyboardEventRelay: compositeRootContext?.relayKeyboardEvent\n });\n const isInMenubar = parent.type === 'menubar';\n const rootDisabled = store.useState('disabled');\n const disabled = disabledProp || rootDisabled || isInMenubar && parent.context.disabled;\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n native: nativeButton\n });\n React.useEffect(() => {\n if (!isOpenedByThisTrigger && parent.type === undefined) {\n store.context.allowMouseUpTriggerRef.current = false;\n }\n }, [store, isOpenedByThisTrigger, parent.type]);\n const triggerRef = React.useRef(null);\n const allowMouseUpTriggerTimeout = useTimeout();\n const handleDocumentMouseUp = useStableCallback(mouseEvent => {\n if (!triggerRef.current) {\n return;\n }\n allowMouseUpTriggerTimeout.clear();\n store.context.allowMouseUpTriggerRef.current = false;\n const mouseUpTarget = mouseEvent.target;\n if (contains(triggerRef.current, mouseUpTarget) || contains(store.select('positionerElement'), mouseUpTarget) || mouseUpTarget === triggerRef.current) {\n return;\n }\n if (mouseUpTarget != null && findRootOwnerId(mouseUpTarget) === store.select('rootId')) {\n return;\n }\n const bounds = getPseudoElementBounds(triggerRef.current);\n if (mouseEvent.clientX >= bounds.left - BOUNDARY_OFFSET && mouseEvent.clientX <= bounds.right + BOUNDARY_OFFSET && mouseEvent.clientY >= bounds.top - BOUNDARY_OFFSET && mouseEvent.clientY <= bounds.bottom + BOUNDARY_OFFSET) {\n return;\n }\n floatingTreeRoot.events.emit('close', {\n domEvent: mouseEvent,\n reason: REASONS.cancelOpen\n });\n });\n React.useEffect(() => {\n if (isOpenedByThisTrigger && store.select('lastOpenChangeReason') === REASONS.triggerHover) {\n const doc = ownerDocument(triggerRef.current);\n doc.addEventListener('mouseup', handleDocumentMouseUp, {\n once: true\n });\n }\n }, [isOpenedByThisTrigger, handleDocumentMouseUp, store]);\n const parentMenubarHasSubmenuOpen = isInMenubar && parent.context.hasSubmenuOpen;\n const openOnHover = openOnHoverProp ?? parentMenubarHasSubmenuOpen;\n const hoverProps = useHoverReferenceInteraction(floatingRootContext, {\n enabled: openOnHover && !disabled && parent.type !== 'context-menu' && (!isInMenubar || parentMenubarHasSubmenuOpen && !isMountedByThisTrigger),\n handleClose: safePolygon({\n blockPointerEvents: !isInMenubar\n }),\n mouseOnly: true,\n move: false,\n restMs: parent.type === undefined ? delay : undefined,\n delay: {\n close: closeDelay\n },\n triggerElementRef,\n externalTree: floatingTreeRoot,\n isActiveTrigger: isTriggerActive,\n isClosing: () => store.select('transitionStatus') === 'ending'\n });\n\n // Whether to ignore clicks to open the menu.\n // `lastOpenChangeReason` doesn't need to be reactive here, as we need to run this\n // only when `isOpenedByThisTrigger` changes.\n const stickIfOpen = useStickIfOpen(isOpenedByThisTrigger, store.select('lastOpenChangeReason'));\n const click = useClick(floatingRootContext, {\n enabled: !disabled && parent.type !== 'context-menu',\n event: isOpenedByThisTrigger && isInMenubar ? 'click' : 'mousedown',\n toggle: true,\n ignoreMouse: false,\n stickIfOpen: parent.type === undefined ? stickIfOpen : false\n });\n const focus = useFocus(floatingRootContext, {\n enabled: !disabled && parentMenubarHasSubmenuOpen\n });\n const mixedToggleHandlers = useMixedToggleClickHandler({\n open: isOpenedByThisTrigger,\n enabled: isInMenubar,\n mouseDownAction: 'open'\n });\n const localInteractionProps = React.useMemo(() => mergeProps(focus.reference, click.reference), [focus.reference, click.reference]);\n const rootTriggerProps = store.useState('triggerProps', isMountedByThisTrigger);\n const {\n preFocusGuardRef,\n handlePreFocusGuardFocus,\n handleFocusTargetFocus\n } = useTriggerFocusGuards(store, triggerElementRef);\n const state = {\n disabled,\n open: isOpenedByThisTrigger\n };\n const ref = [triggerRef, forwardedRef, buttonRef, registerTrigger, triggerElementRef];\n const props = [localInteractionProps, hoverProps ?? EMPTY_OBJECT, rootTriggerProps, {\n 'aria-haspopup': 'menu',\n 'aria-controls': popupId,\n id: thisTriggerId,\n onMouseDown: event => {\n if (store.select('open')) {\n return;\n }\n\n // mousedown -> mouseup on menu item should not trigger it within 200ms.\n allowMouseUpTriggerTimeout.start(200, () => {\n store.context.allowMouseUpTriggerRef.current = true;\n });\n const doc = ownerDocument(event.currentTarget);\n doc.addEventListener('mouseup', handleDocumentMouseUp, {\n once: true\n });\n }\n }, isInMenubar ? {\n role: 'menuitem'\n } : {}, mixedToggleHandlers, elementProps, getButtonProps];\n const element = useRenderElement('button', componentProps, {\n enabled: !isInMenubar,\n stateAttributesMapping: pressableTriggerOpenStateMapping,\n state,\n ref,\n props\n });\n if (isInMenubar) {\n return /*#__PURE__*/_jsx(CompositeItem, {\n tag: \"button\",\n render: render,\n className: className,\n style: style,\n state: state,\n refs: ref,\n props: props,\n stateAttributesMapping: pressableTriggerOpenStateMapping\n });\n }\n\n // A fragment with key is required to ensure that the `element` is mounted to the same DOM node\n // regardless of whether the focus guards are rendered or not.\n\n if (isOpenedByThisTrigger) {\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(FocusGuard, {\n ref: preFocusGuardRef,\n onFocus: handlePreFocusGuardFocus\n }, `${thisTriggerId}-pre-focus-guard`), /*#__PURE__*/_jsx(React.Fragment, {\n children: element\n }, thisTriggerId), /*#__PURE__*/_jsx(FocusGuard, {\n ref: store.context.triggerFocusTargetRef,\n onFocus: handleFocusTargetFocus\n }, `${thisTriggerId}-post-focus-guard`)]\n });\n }\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: element\n }, thisTriggerId);\n});\nif (process.env.NODE_ENV !== \"production\") MenuTrigger.displayName = \"MenuTrigger\";\n/**\n * Determines whether to ignore clicks after a hover-open.\n */\nfunction useStickIfOpen(open, openReason) {\n const stickIfOpenTimeout = useTimeout();\n const [stickIfOpen, setStickIfOpen] = React.useState(false);\n useIsoLayoutEffect(() => {\n if (open && openReason === 'trigger-hover') {\n // Only allow \"patient\" clicks to close the menu if it's open.\n // If they clicked within 500ms of the menu opening, keep it open.\n setStickIfOpen(true);\n stickIfOpenTimeout.start(PATIENT_CLICK_THRESHOLD, () => {\n setStickIfOpen(false);\n });\n } else if (!open) {\n stickIfOpenTimeout.clear();\n setStickIfOpen(false);\n }\n }, [open, openReason, stickIfOpenTimeout]);\n return stickIfOpen;\n}\nfunction useMenuParent() {\n const contextMenuContext = useContextMenuRootContext(true);\n const parentContext = useMenuRootContext(true);\n const menubarContext = useMenubarContext(true);\n const parent = React.useMemo(() => {\n if (menubarContext) {\n return {\n type: 'menubar',\n context: menubarContext\n };\n }\n\n // Ensure this is not a Menu nested inside ContextMenu.Trigger.\n // ContextMenu parentContext is always undefined as ContextMenu.Root is instantiated with\n // <MenuRootContext.Provider value={undefined}>\n if (contextMenuContext && !parentContext) {\n return {\n type: 'context-menu',\n context: contextMenuContext\n };\n }\n return {\n type: undefined\n };\n }, [contextMenuContext, parentContext, menubarContext]);\n return parent;\n}","'use client';\n\nimport { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport { Check, ChevronRight } from 'lucide-react';\nimport type * as React from 'react';\nimport { Kbd } from '@/components/molecules/data/Kbd';\nimport { cn } from '@/lib/utils';\n\n// ============================================================================\n// Base Primitives\n// ============================================================================\n\nfunction DropdownMenuRoot({ ...props }: MenuPrimitive.Root.Props) {\n return <MenuPrimitive.Root data-slot=\"dropdown-menu-root\" {...props} />;\n}\nDropdownMenuRoot.displayName = 'DropdownMenu.Root';\n\nfunction DropdownMenuPortal({ ...props }: MenuPrimitive.Portal.Props) {\n return <MenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />;\n}\nDropdownMenuPortal.displayName = 'DropdownMenu.Portal';\n\nfunction DropdownMenuTrigger({ ...props }: MenuPrimitive.Trigger.Props) {\n return <MenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />;\n}\nDropdownMenuTrigger.displayName = 'DropdownMenu.Trigger';\n\nfunction DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {\n return <MenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\nDropdownMenuGroup.displayName = 'DropdownMenu.Group';\n\nfunction DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {\n return <MenuPrimitive.SubmenuRoot data-slot=\"dropdown-menu-sub\" {...props} />;\n}\nDropdownMenuSub.displayName = 'DropdownMenu.Sub';\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: MenuPrimitive.SubmenuTrigger.Props & {\n inset?: boolean;\n}) {\n return (\n <MenuPrimitive.SubmenuTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2 rounded-sm px-2 py-2 text-sm [&_svg:not([class*='size-'])]:size-4 group/dd-sub flex cursor-default items-center outline-hidden select-none data-[inset]:ps-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 transition-[color,background-color,transform] duration-150 active:scale-[0.99]\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ms-auto rtl:rotate-180 transition-transform duration-150 group-data-open/dd-sub:translate-x-0.5\" />\n </MenuPrimitive.SubmenuTrigger>\n );\n}\nDropdownMenuSubTrigger.displayName = 'DropdownMenu.SubTrigger';\n\nfunction DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {\n return (\n <MenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n );\n}\nDropdownMenuRadioGroup.displayName = 'DropdownMenu.RadioGroup';\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: MenuPrimitive.RadioItem.Props) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2 rounded-sm py-2 pe-8 ps-2 text-sm [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 transition-colors duration-150\",\n className,\n )}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute end-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-radio-item-indicator\"\n >\n <MenuPrimitive.RadioItemIndicator className=\"animate-in zoom-in-75 duration-150 motion-reduce:animate-none\">\n <Check />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n );\n}\nDropdownMenuRadioItem.displayName = 'DropdownMenu.RadioItem';\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: MenuPrimitive.CheckboxItem.Props) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2 rounded-sm py-2 pe-8 ps-2 text-sm [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 transition-colors duration-150\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute end-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-checkbox-item-indicator\"\n >\n <MenuPrimitive.CheckboxItemIndicator className=\"animate-in zoom-in-75 duration-150 motion-reduce:animate-none\">\n <Check />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n );\n}\nDropdownMenuCheckboxItem.displayName = 'DropdownMenu.CheckboxItem';\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n 'text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground ms-auto text-xs tracking-widest',\n className,\n )}\n {...props}\n />\n );\n}\nDropdownMenuShortcut.displayName = 'DropdownMenu.Shortcut';\n\n// ============================================================================\n// Enhanced Components\n// ============================================================================\n\n// Width variant classes for popup\nconst popupWidthClasses = {\n auto: '',\n sm: 'w-48',\n md: 'w-56',\n lg: 'w-64',\n};\n\n/**\n * Enhanced DropdownMenuPopup with HumainOS styling\n */\nexport interface DropdownMenuPopupProps\n extends React.HTMLAttributes<HTMLDivElement> {\n /** Menu content */\n children?: React.ReactNode;\n /** Width of the dropdown menu */\n width?: 'auto' | 'sm' | 'md' | 'lg';\n /** Side offset from the trigger */\n sideOffset?: number;\n /** Side to show the menu on */\n side?: 'top' | 'right' | 'bottom' | 'left';\n /** Alignment of the menu */\n align?: 'start' | 'center' | 'end';\n /** Align offset */\n alignOffset?: number;\n}\n\nfunction DropdownMenuPopup({\n align = 'start',\n alignOffset = 0,\n side = 'bottom',\n sideOffset = 4,\n width = 'auto',\n className,\n ...props\n}: DropdownMenuPopupProps) {\n return (\n <MenuPrimitive.Portal>\n <MenuPrimitive.Positioner\n className=\"isolate z-50 outline-none\"\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n >\n <MenuPrimitive.Popup\n data-slot=\"dropdown-menu-popup\"\n className={cn(\n 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n 'border border-border bg-popover text-popover-foreground min-w-32 rounded-lg p-1 shadow-sm z-50 max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-x-hidden overflow-y-auto outline-none data-closed:overflow-hidden',\n 'duration-200 motion-reduce:animate-none',\n popupWidthClasses[width],\n className,\n )}\n {...props}\n />\n </MenuPrimitive.Positioner>\n </MenuPrimitive.Portal>\n );\n}\nDropdownMenuPopup.displayName = 'DropdownMenu.Popup';\n\nfunction DropdownMenuSubPopup({\n align = 'start',\n alignOffset = -3,\n side = 'right',\n sideOffset = 0,\n className,\n ...props\n}: DropdownMenuPopupProps) {\n return (\n <DropdownMenuPopup\n data-slot=\"dropdown-menu-sub-popup\"\n className={cn('min-w-[96px] w-auto', className)}\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n {...props}\n />\n );\n}\nDropdownMenuSubPopup.displayName = 'DropdownMenu.SubPopup';\n\n/**\n * Header section for dropdown menu with avatar and user info\n */\nexport interface DropdownMenuHeaderProps extends React.ComponentProps<'div'> {\n /** Avatar element to display */\n avatar?: React.ReactNode;\n /** Primary text (e.g., user name) */\n title?: string;\n /** Secondary text (e.g., email) */\n subtitle?: string;\n}\n\nfunction DropdownMenuHeader({\n className,\n avatar,\n title,\n subtitle,\n children,\n ...props\n}: DropdownMenuHeaderProps) {\n if (children) {\n return (\n <div\n data-slot=\"dropdown-menu-header\"\n className={cn('border-b border-border px-4 py-3', className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n return (\n <div\n data-slot=\"dropdown-menu-header\"\n className={cn('border-b border-border px-4 py-3', className)}\n {...props}\n >\n <div className=\"flex items-center gap-3\">\n {avatar}\n <div className=\"flex flex-col min-w-0\">\n {title && (\n <span className=\"text-sm font-semibold text-foreground truncate\">\n {title}\n </span>\n )}\n {subtitle && (\n <span className=\"text-sm text-muted-foreground truncate\">\n {subtitle}\n </span>\n )}\n </div>\n </div>\n </div>\n );\n}\nDropdownMenuHeader.displayName = 'DropdownMenu.Header';\n\nexport interface DropdownMenuLabelProps\n extends React.HTMLAttributes<HTMLDivElement> {\n /** Whether the label is inset */\n inset?: boolean;\n}\n\n/**\n * Enhanced DropdownMenuLabel\n */\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: DropdownMenuLabelProps) {\n return (\n <MenuPrimitive.GroupLabel\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n 'px-4 py-2 text-xs font-medium text-text-quaternary uppercase tracking-wider',\n 'data-[inset]:ps-8',\n className,\n )}\n {...props}\n />\n );\n}\nDropdownMenuLabel.displayName = 'DropdownMenu.Label';\n\n/**\n * Enhanced DropdownMenuItem with icon and shortcut support\n */\nexport interface DropdownMenuItemProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {\n /** Item content */\n children?: React.ReactNode;\n /** Icon displayed before the label */\n icon?: React.ReactNode;\n /** Keyboard shortcut displayed on the right */\n shortcut?: string;\n /** Makes the item destructive (red text) */\n destructive?: boolean;\n /** Whether the item is disabled */\n disabled?: boolean;\n /**\n * Render as a different element (Base UI pattern).\n * Use this to render as a custom component like Link or anchor.\n * @example render={<Link to=\"/profile\" />}\n */\n render?: React.ReactElement;\n /** Whether the item is inset */\n inset?: boolean;\n /** Variant for styling */\n variant?: 'default' | 'destructive';\n}\n\nfunction DropdownMenuItem({\n className,\n icon,\n shortcut,\n destructive = false,\n render,\n inset,\n variant = 'default',\n children,\n ...props\n}: DropdownMenuItemProps) {\n const isDestructive = destructive || variant === 'destructive';\n\n return (\n <MenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={isDestructive ? 'destructive' : variant}\n className={cn(\n 'group/dropdown-menu-item relative flex items-center gap-2 mx-1.5 px-2.5 py-2 rounded-md cursor-pointer outline-none',\n 'text-sm font-semibold text-secondary-foreground',\n 'focus:bg-muted focus:text-secondary-foreground',\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n 'data-[inset]:ps-8',\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n 'transition-[color,background-color,transform] duration-150 active:scale-[0.99]',\n isDestructive &&\n 'text-destructive focus:text-destructive focus:bg-destructive/10',\n className,\n )}\n render={render}\n {...props}\n >\n {icon && (\n <span\n className={cn(\n 'size-4 shrink-0 transition-colors duration-150',\n isDestructive\n ? 'text-destructive'\n : 'text-text-quaternary group-focus/dropdown-menu-item:text-secondary-foreground',\n )}\n >\n {icon}\n </span>\n )}\n <span className=\"flex-1\">{children}</span>\n {shortcut && (\n <DropdownMenuShortcutBadge className=\"transition-colors duration-150 group-focus/dropdown-menu-item:bg-primary/10 group-focus/dropdown-menu-item:text-primary\">\n {shortcut}\n </DropdownMenuShortcutBadge>\n )}\n </MenuPrimitive.Item>\n );\n}\nDropdownMenuItem.displayName = 'DropdownMenu.Item';\n\nexport interface DropdownMenuSeparatorProps\n extends React.HTMLAttributes<HTMLDivElement> {}\n\n/**\n * Enhanced DropdownMenuSeparator\n */\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: DropdownMenuSeparatorProps) {\n return (\n <MenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn('my-1 h-px bg-surface-2', className)}\n {...props}\n />\n );\n}\nDropdownMenuSeparator.displayName = 'DropdownMenu.Separator';\n\nexport interface DropdownMenuItemsProps\n extends React.HTMLAttributes<HTMLDivElement> {}\n\n/**\n * Container for menu items with proper padding\n */\nfunction DropdownMenuItems({\n className,\n children,\n ...props\n}: DropdownMenuItemsProps) {\n return (\n <div\n data-slot=\"dropdown-menu-items\"\n className={cn('py-1', className)}\n {...props}\n >\n {children}\n </div>\n );\n}\nDropdownMenuItems.displayName = 'DropdownMenu.Items';\n\n/**\n * Styled shortcut badge that matches Figma design (uses Kbd wrapper)\n */\nfunction DropdownMenuShortcutBadge({\n className,\n children,\n ...props\n}: React.ComponentProps<'kbd'>) {\n return (\n <Kbd variant=\"outline\" size=\"xs\" className={className} {...props}>\n {children}\n </Kbd>\n );\n}\nDropdownMenuShortcutBadge.displayName = 'DropdownMenu.ShortcutBadge';\n\n// ============================================================================\n// SimpleDropdownMenu (with trigger prop pattern)\n// ============================================================================\n\nexport interface SimpleDropdownMenuProps {\n /** The element that triggers the dropdown (required) */\n trigger: React.ReactElement;\n /** Dropdown content (typically DropdownMenu.Popup component) */\n children?: React.ReactNode;\n /** Controlled open state. When provided, component is controlled. */\n open?: boolean;\n /** Callback when open state changes */\n onOpenChange?: (open: boolean) => void;\n}\n\n/**\n * Simplified DropdownMenu component with explicit trigger prop.\n * Prevents nested button hydration errors by using base-ui's render prop.\n *\n * @example\n * <SimpleDropdownMenu trigger={<Button>Menu</Button>}>\n * <DropdownMenu.Popup>\n * <DropdownMenu.Items>\n * <DropdownMenu.Item>Option 1</DropdownMenu.Item>\n * </DropdownMenu.Items>\n * </DropdownMenu.Popup>\n * </SimpleDropdownMenu>\n */\nfunction SimpleDropdownMenu({\n trigger,\n open,\n onOpenChange,\n children,\n}: SimpleDropdownMenuProps) {\n return (\n <DropdownMenuRoot open={open} onOpenChange={onOpenChange}>\n <DropdownMenuTrigger render={trigger} />\n {children}\n </DropdownMenuRoot>\n );\n}\nSimpleDropdownMenu.displayName = 'DropdownMenu.Simple';\n\n// ============================================================================\n// Compound Export (Dot Notation Pattern)\n// ============================================================================\n\nexport const DropdownMenu = Object.assign(DropdownMenuRoot, {\n Root: DropdownMenuRoot,\n Portal: DropdownMenuPortal,\n Trigger: DropdownMenuTrigger,\n Popup: DropdownMenuPopup,\n Group: DropdownMenuGroup,\n Label: DropdownMenuLabel,\n Item: DropdownMenuItem,\n CheckboxItem: DropdownMenuCheckboxItem,\n RadioGroup: DropdownMenuRadioGroup,\n RadioItem: DropdownMenuRadioItem,\n Separator: DropdownMenuSeparator,\n Shortcut: DropdownMenuShortcut,\n ShortcutBadge: DropdownMenuShortcutBadge,\n Sub: DropdownMenuSub,\n SubTrigger: DropdownMenuSubTrigger,\n SubPopup: DropdownMenuSubPopup,\n Header: DropdownMenuHeader,\n Items: DropdownMenuItems,\n Simple: SimpleDropdownMenu,\n});\n\n// ============================================================================\n// Type Exports\n// ============================================================================\n\nexport type DropdownMenuPopupWrapperProps = DropdownMenuPopupProps;\nexport type DropdownMenuItemWrapperProps = DropdownMenuItemProps;\nexport type DropdownMenuHeaderWrapperProps = DropdownMenuHeaderProps;\n"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
1
+ {"version":3,"file":"DropdownMenu.js","names":["_formatErrorMessage","REASONS.cancelOpen"],"sources":["../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/@base-ui+react@1.6.0+1c528c44af60ea5b/node_modules/@base-ui/react/menu/utils/findRootOwnerId.mjs","../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/@base-ui+react@1.6.0+1c528c44af60ea5b/node_modules/@base-ui/react/utils/useMixedToggleClickHandler.mjs","../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/@base-ui+react@1.6.0+1c528c44af60ea5b/node_modules/@base-ui/react/menu/trigger/MenuTrigger.mjs","../../src/components/organisms/menus/DropdownMenu/DropdownMenu.tsx"],"sourcesContent":["import { getParentNode, isHTMLElement, isLastTraversableNode } from '@floating-ui/utils/dom';\nexport function findRootOwnerId(node) {\n if (isHTMLElement(node) && node.hasAttribute('data-rootownerid')) {\n return node.getAttribute('data-rootownerid') ?? undefined;\n }\n if (isLastTraversableNode(node)) {\n return undefined;\n }\n return findRootOwnerId(getParentNode(node));\n}","'use client';\n\nimport * as React from 'react';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\n/**\n * Returns `click` and `mousedown` handlers that fix the behavior of triggers of popups that are toggled by different events.\n * For example, a button that opens a popup on mousedown and closes it on click.\n * This hook prevents the popup from closing immediately after the mouse button is released.\n */\nexport function useMixedToggleClickHandler(params) {\n const {\n enabled = true,\n mouseDownAction,\n open\n } = params;\n const ignoreClickRef = React.useRef(false);\n return React.useMemo(() => {\n if (!enabled) {\n return EMPTY_OBJECT;\n }\n return {\n onMouseDown: event => {\n if (mouseDownAction === 'open' && !open || mouseDownAction === 'close' && open) {\n ignoreClickRef.current = true;\n ownerDocument(event.currentTarget).addEventListener('click', () => {\n ignoreClickRef.current = false;\n }, {\n once: true\n });\n }\n },\n onClick: event => {\n if (ignoreClickRef.current) {\n ignoreClickRef.current = false;\n event.preventBaseUIHandler();\n }\n }\n };\n }, [enabled, mouseDownAction, open]);\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nimport { useTimeout } from '@base-ui/utils/useTimeout';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { fastComponentRef } from '@base-ui/utils/fastHooks';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { safePolygon, useClick, useFloatingTree, useFocus, useHoverReferenceInteraction, useFloatingNodeId, useFloatingParentNodeId } from \"../../floating-ui-react/index.mjs\";\nimport { FloatingTreeStore } from \"../../floating-ui-react/components/FloatingTreeStore.mjs\";\nimport { contains } from \"../../floating-ui-react/utils.mjs\";\nimport { useMenuRootContext } from \"../root/MenuRootContext.mjs\";\nimport { pressableTriggerOpenStateMapping } from \"../../utils/popupStateMapping.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useButton } from \"../../internals/use-button/useButton.mjs\";\nimport { getPseudoElementBounds } from \"../../utils/getPseudoElementBounds.mjs\";\nimport { CompositeItem } from \"../../internals/composite/item/CompositeItem.mjs\";\nimport { useCompositeRootContext } from \"../../internals/composite/root/CompositeRootContext.mjs\";\nimport { findRootOwnerId } from \"../utils/findRootOwnerId.mjs\";\nimport { useTriggerDataForwarding } from \"../../utils/popups/index.mjs\";\nimport { useTriggerFocusGuards } from \"../../utils/popups/useTriggerFocusGuards.mjs\";\nimport { useBaseUiId } from \"../../internals/useBaseUiId.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { useMixedToggleClickHandler } from \"../../utils/useMixedToggleClickHandler.mjs\";\nimport { useContextMenuRootContext } from \"../../context-menu/root/ContextMenuRootContext.mjs\";\nimport { useMenubarContext } from \"../../menubar/MenubarContext.mjs\";\nimport { PATIENT_CLICK_THRESHOLD } from \"../../internals/constants.mjs\";\nimport { FocusGuard } from \"../../utils/FocusGuard.mjs\";\nimport { mergeProps } from \"../../merge-props/index.mjs\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst BOUNDARY_OFFSET = 2;\n\n/**\n * A button that opens the menu.\n * Renders a `<button>` element.\n *\n * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)\n */\nexport const MenuTrigger = fastComponentRef(function MenuTrigger(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n disabled: disabledProp = false,\n nativeButton = true,\n id: idProp,\n openOnHover: openOnHoverProp,\n delay = 100,\n closeDelay = 0,\n handle,\n payload,\n ...elementProps\n } = componentProps;\n const rootContext = useMenuRootContext(true);\n const store = handle?.store ?? rootContext?.store;\n if (!store) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: <Menu.Trigger> must be either used within a <Menu.Root> component or provided with a handle.' : _formatErrorMessage(85));\n }\n const thisTriggerId = useBaseUiId(idProp);\n const isTriggerActive = store.useState('isTriggerActive', thisTriggerId);\n const floatingRootContext = store.useState('floatingRootContext');\n const isOpenedByThisTrigger = store.useState('isOpenedByTrigger', thisTriggerId);\n const popupId = store.useState('triggerPopupId', thisTriggerId);\n const triggerElementRef = React.useRef(null);\n const parent = useMenuParent();\n const compositeRootContext = useCompositeRootContext(true);\n const floatingTreeRootFromContext = useFloatingTree();\n const floatingTreeRoot = React.useMemo(() => {\n return floatingTreeRootFromContext ?? new FloatingTreeStore();\n }, [floatingTreeRootFromContext]);\n const floatingNodeId = useFloatingNodeId(floatingTreeRoot);\n const floatingParentNodeId = useFloatingParentNodeId();\n const {\n registerTrigger,\n isMountedByThisTrigger\n } = useTriggerDataForwarding(thisTriggerId, triggerElementRef, store, {\n payload,\n closeDelay,\n parent,\n floatingTreeRoot,\n floatingNodeId,\n floatingParentNodeId,\n keyboardEventRelay: compositeRootContext?.relayKeyboardEvent\n });\n const isInMenubar = parent.type === 'menubar';\n const rootDisabled = store.useState('disabled');\n const disabled = disabledProp || rootDisabled || isInMenubar && parent.context.disabled;\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n native: nativeButton\n });\n React.useEffect(() => {\n if (!isOpenedByThisTrigger && parent.type === undefined) {\n store.context.allowMouseUpTriggerRef.current = false;\n }\n }, [store, isOpenedByThisTrigger, parent.type]);\n const triggerRef = React.useRef(null);\n const allowMouseUpTriggerTimeout = useTimeout();\n const handleDocumentMouseUp = useStableCallback(mouseEvent => {\n if (!triggerRef.current) {\n return;\n }\n allowMouseUpTriggerTimeout.clear();\n store.context.allowMouseUpTriggerRef.current = false;\n const mouseUpTarget = mouseEvent.target;\n if (contains(triggerRef.current, mouseUpTarget) || contains(store.select('positionerElement'), mouseUpTarget) || mouseUpTarget === triggerRef.current) {\n return;\n }\n if (mouseUpTarget != null && findRootOwnerId(mouseUpTarget) === store.select('rootId')) {\n return;\n }\n const bounds = getPseudoElementBounds(triggerRef.current);\n if (mouseEvent.clientX >= bounds.left - BOUNDARY_OFFSET && mouseEvent.clientX <= bounds.right + BOUNDARY_OFFSET && mouseEvent.clientY >= bounds.top - BOUNDARY_OFFSET && mouseEvent.clientY <= bounds.bottom + BOUNDARY_OFFSET) {\n return;\n }\n floatingTreeRoot.events.emit('close', {\n domEvent: mouseEvent,\n reason: REASONS.cancelOpen\n });\n });\n React.useEffect(() => {\n if (isOpenedByThisTrigger && store.select('lastOpenChangeReason') === REASONS.triggerHover) {\n const doc = ownerDocument(triggerRef.current);\n doc.addEventListener('mouseup', handleDocumentMouseUp, {\n once: true\n });\n }\n }, [isOpenedByThisTrigger, handleDocumentMouseUp, store]);\n const parentMenubarHasSubmenuOpen = isInMenubar && parent.context.hasSubmenuOpen;\n const openOnHover = openOnHoverProp ?? parentMenubarHasSubmenuOpen;\n const hoverProps = useHoverReferenceInteraction(floatingRootContext, {\n enabled: openOnHover && !disabled && parent.type !== 'context-menu' && (!isInMenubar || parentMenubarHasSubmenuOpen && !isMountedByThisTrigger),\n handleClose: safePolygon({\n blockPointerEvents: !isInMenubar\n }),\n mouseOnly: true,\n move: false,\n restMs: parent.type === undefined ? delay : undefined,\n delay: {\n close: closeDelay\n },\n triggerElementRef,\n externalTree: floatingTreeRoot,\n isActiveTrigger: isTriggerActive,\n isClosing: () => store.select('transitionStatus') === 'ending'\n });\n\n // Whether to ignore clicks to open the menu.\n // `lastOpenChangeReason` doesn't need to be reactive here, as we need to run this\n // only when `isOpenedByThisTrigger` changes.\n const stickIfOpen = useStickIfOpen(isOpenedByThisTrigger, store.select('lastOpenChangeReason'));\n const click = useClick(floatingRootContext, {\n enabled: !disabled && parent.type !== 'context-menu',\n event: isOpenedByThisTrigger && isInMenubar ? 'click' : 'mousedown',\n toggle: true,\n ignoreMouse: false,\n stickIfOpen: parent.type === undefined ? stickIfOpen : false\n });\n const focus = useFocus(floatingRootContext, {\n enabled: !disabled && parentMenubarHasSubmenuOpen\n });\n const mixedToggleHandlers = useMixedToggleClickHandler({\n open: isOpenedByThisTrigger,\n enabled: isInMenubar,\n mouseDownAction: 'open'\n });\n const localInteractionProps = React.useMemo(() => mergeProps(focus.reference, click.reference), [focus.reference, click.reference]);\n const rootTriggerProps = store.useState('triggerProps', isMountedByThisTrigger);\n const {\n preFocusGuardRef,\n handlePreFocusGuardFocus,\n handleFocusTargetFocus\n } = useTriggerFocusGuards(store, triggerElementRef);\n const state = {\n disabled,\n open: isOpenedByThisTrigger\n };\n const ref = [triggerRef, forwardedRef, buttonRef, registerTrigger, triggerElementRef];\n const props = [localInteractionProps, hoverProps ?? EMPTY_OBJECT, rootTriggerProps, {\n 'aria-haspopup': 'menu',\n 'aria-controls': popupId,\n id: thisTriggerId,\n onMouseDown: event => {\n if (store.select('open')) {\n return;\n }\n\n // mousedown -> mouseup on menu item should not trigger it within 200ms.\n allowMouseUpTriggerTimeout.start(200, () => {\n store.context.allowMouseUpTriggerRef.current = true;\n });\n const doc = ownerDocument(event.currentTarget);\n doc.addEventListener('mouseup', handleDocumentMouseUp, {\n once: true\n });\n }\n }, isInMenubar ? {\n role: 'menuitem'\n } : {}, mixedToggleHandlers, elementProps, getButtonProps];\n const element = useRenderElement('button', componentProps, {\n enabled: !isInMenubar,\n stateAttributesMapping: pressableTriggerOpenStateMapping,\n state,\n ref,\n props\n });\n if (isInMenubar) {\n return /*#__PURE__*/_jsx(CompositeItem, {\n tag: \"button\",\n render: render,\n className: className,\n style: style,\n state: state,\n refs: ref,\n props: props,\n stateAttributesMapping: pressableTriggerOpenStateMapping\n });\n }\n\n // A fragment with key is required to ensure that the `element` is mounted to the same DOM node\n // regardless of whether the focus guards are rendered or not.\n\n if (isOpenedByThisTrigger) {\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(FocusGuard, {\n ref: preFocusGuardRef,\n onFocus: handlePreFocusGuardFocus\n }, `${thisTriggerId}-pre-focus-guard`), /*#__PURE__*/_jsx(React.Fragment, {\n children: element\n }, thisTriggerId), /*#__PURE__*/_jsx(FocusGuard, {\n ref: store.context.triggerFocusTargetRef,\n onFocus: handleFocusTargetFocus\n }, `${thisTriggerId}-post-focus-guard`)]\n });\n }\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: element\n }, thisTriggerId);\n});\nif (process.env.NODE_ENV !== \"production\") MenuTrigger.displayName = \"MenuTrigger\";\n/**\n * Determines whether to ignore clicks after a hover-open.\n */\nfunction useStickIfOpen(open, openReason) {\n const stickIfOpenTimeout = useTimeout();\n const [stickIfOpen, setStickIfOpen] = React.useState(false);\n useIsoLayoutEffect(() => {\n if (open && openReason === 'trigger-hover') {\n // Only allow \"patient\" clicks to close the menu if it's open.\n // If they clicked within 500ms of the menu opening, keep it open.\n setStickIfOpen(true);\n stickIfOpenTimeout.start(PATIENT_CLICK_THRESHOLD, () => {\n setStickIfOpen(false);\n });\n } else if (!open) {\n stickIfOpenTimeout.clear();\n setStickIfOpen(false);\n }\n }, [open, openReason, stickIfOpenTimeout]);\n return stickIfOpen;\n}\nfunction useMenuParent() {\n const contextMenuContext = useContextMenuRootContext(true);\n const parentContext = useMenuRootContext(true);\n const menubarContext = useMenubarContext(true);\n const parent = React.useMemo(() => {\n if (menubarContext) {\n return {\n type: 'menubar',\n context: menubarContext\n };\n }\n\n // Ensure this is not a Menu nested inside ContextMenu.Trigger.\n // ContextMenu parentContext is always undefined as ContextMenu.Root is instantiated with\n // <MenuRootContext.Provider value={undefined}>\n if (contextMenuContext && !parentContext) {\n return {\n type: 'context-menu',\n context: contextMenuContext\n };\n }\n return {\n type: undefined\n };\n }, [contextMenuContext, parentContext, menubarContext]);\n return parent;\n}","'use client';\n\nimport { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport { Check, ChevronRight } from 'lucide-react';\nimport type * as React from 'react';\nimport { Kbd } from '@/components/molecules/data/Kbd';\nimport { cn } from '@/lib/utils';\n\n// ============================================================================\n// Base Primitives\n// ============================================================================\n\nfunction DropdownMenuRoot({ ...props }: MenuPrimitive.Root.Props) {\n return <MenuPrimitive.Root data-slot=\"dropdown-menu-root\" {...props} />;\n}\nDropdownMenuRoot.displayName = 'DropdownMenu.Root';\n\nfunction DropdownMenuPortal({ ...props }: MenuPrimitive.Portal.Props) {\n return <MenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />;\n}\nDropdownMenuPortal.displayName = 'DropdownMenu.Portal';\n\nfunction DropdownMenuTrigger({ ...props }: MenuPrimitive.Trigger.Props) {\n return <MenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />;\n}\nDropdownMenuTrigger.displayName = 'DropdownMenu.Trigger';\n\nfunction DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {\n return <MenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\nDropdownMenuGroup.displayName = 'DropdownMenu.Group';\n\nfunction DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {\n return <MenuPrimitive.SubmenuRoot data-slot=\"dropdown-menu-sub\" {...props} />;\n}\nDropdownMenuSub.displayName = 'DropdownMenu.Sub';\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: MenuPrimitive.SubmenuTrigger.Props & {\n inset?: boolean;\n}) {\n return (\n <MenuPrimitive.SubmenuTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2 rounded-sm px-2 py-2 text-sm [&_svg:not([class*='size-'])]:size-4 group/dd-sub flex cursor-default items-center outline-hidden select-none data-[inset]:ps-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 transition-[color,background-color,transform] duration-150 active:scale-[0.99]\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ms-auto rtl:rotate-180 transition-transform duration-150 group-data-open/dd-sub:translate-x-0.5\" />\n </MenuPrimitive.SubmenuTrigger>\n );\n}\nDropdownMenuSubTrigger.displayName = 'DropdownMenu.SubTrigger';\n\nfunction DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {\n return (\n <MenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n );\n}\nDropdownMenuRadioGroup.displayName = 'DropdownMenu.RadioGroup';\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: MenuPrimitive.RadioItem.Props) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2 rounded-sm py-2 pe-8 ps-2 text-sm [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 transition-colors duration-150\",\n className,\n )}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute end-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-radio-item-indicator\"\n >\n <MenuPrimitive.RadioItemIndicator className=\"animate-in zoom-in-75 duration-150 motion-reduce:animate-none\">\n <Check />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n );\n}\nDropdownMenuRadioItem.displayName = 'DropdownMenu.RadioItem';\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: MenuPrimitive.CheckboxItem.Props) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2 rounded-sm py-2 pe-8 ps-2 text-sm [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 transition-colors duration-150\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute end-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-checkbox-item-indicator\"\n >\n <MenuPrimitive.CheckboxItemIndicator className=\"animate-in zoom-in-75 duration-150 motion-reduce:animate-none\">\n <Check />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n );\n}\nDropdownMenuCheckboxItem.displayName = 'DropdownMenu.CheckboxItem';\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n 'text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground ms-auto text-xs tracking-widest',\n className,\n )}\n {...props}\n />\n );\n}\nDropdownMenuShortcut.displayName = 'DropdownMenu.Shortcut';\n\n// ============================================================================\n// Enhanced Components\n// ============================================================================\n\n// Width variant classes for popup\nconst popupWidthClasses = {\n auto: '',\n sm: 'w-48',\n md: 'w-56',\n lg: 'w-64',\n};\n\n/**\n * Enhanced DropdownMenuPopup with HumainOS styling\n */\nexport interface DropdownMenuPopupProps\n extends React.HTMLAttributes<HTMLDivElement> {\n /** Menu content */\n children?: React.ReactNode;\n /** Width of the dropdown menu */\n width?: 'auto' | 'sm' | 'md' | 'lg';\n /** Side offset from the trigger */\n sideOffset?: number;\n /** Side to show the menu on */\n side?: 'top' | 'right' | 'bottom' | 'left';\n /** Alignment of the menu */\n align?: 'start' | 'center' | 'end';\n /** Align offset */\n alignOffset?: number;\n}\n\nfunction DropdownMenuPopup({\n align = 'start',\n alignOffset = 0,\n side = 'bottom',\n sideOffset = 4,\n width = 'auto',\n className,\n ...props\n}: DropdownMenuPopupProps) {\n return (\n <MenuPrimitive.Portal>\n <MenuPrimitive.Positioner\n className=\"isolate z-50 outline-none\"\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n >\n <MenuPrimitive.Popup\n data-slot=\"dropdown-menu-popup\"\n className={cn(\n 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n 'border border-border bg-popover text-popover-foreground min-w-32 rounded-lg p-1 shadow-sm z-50 max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-x-hidden overflow-y-auto outline-none data-closed:overflow-hidden',\n 'duration-200 motion-reduce:animate-none',\n popupWidthClasses[width],\n className,\n )}\n {...props}\n />\n </MenuPrimitive.Positioner>\n </MenuPrimitive.Portal>\n );\n}\nDropdownMenuPopup.displayName = 'DropdownMenu.Popup';\n\nfunction DropdownMenuSubPopup({\n align = 'start',\n alignOffset = -3,\n side = 'right',\n sideOffset = 0,\n className,\n ...props\n}: DropdownMenuPopupProps) {\n return (\n <DropdownMenuPopup\n data-slot=\"dropdown-menu-sub-popup\"\n className={cn('min-w-[96px] w-auto', className)}\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n {...props}\n />\n );\n}\nDropdownMenuSubPopup.displayName = 'DropdownMenu.SubPopup';\n\n/**\n * Header section for dropdown menu with avatar and user info\n */\nexport interface DropdownMenuHeaderProps extends React.ComponentProps<'div'> {\n /** Avatar element to display */\n avatar?: React.ReactNode;\n /** Primary text (e.g., user name) */\n title?: string;\n /** Secondary text (e.g., email) */\n subtitle?: string;\n}\n\nfunction DropdownMenuHeader({\n className,\n avatar,\n title,\n subtitle,\n children,\n ...props\n}: DropdownMenuHeaderProps) {\n if (children) {\n return (\n <div\n data-slot=\"dropdown-menu-header\"\n className={cn('border-b border-border px-4 py-3', className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n return (\n <div\n data-slot=\"dropdown-menu-header\"\n className={cn('border-b border-border px-4 py-3', className)}\n {...props}\n >\n <div className=\"flex items-center gap-3\">\n {avatar}\n <div className=\"flex flex-col min-w-0\">\n {title && (\n <span className=\"text-sm font-semibold text-foreground truncate\">\n {title}\n </span>\n )}\n {subtitle && (\n <span className=\"text-sm text-muted-foreground truncate\">\n {subtitle}\n </span>\n )}\n </div>\n </div>\n </div>\n );\n}\nDropdownMenuHeader.displayName = 'DropdownMenu.Header';\n\nexport interface DropdownMenuLabelProps\n extends React.HTMLAttributes<HTMLDivElement> {\n /** Whether the label is inset */\n inset?: boolean;\n}\n\n/**\n * Enhanced DropdownMenuLabel\n */\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: DropdownMenuLabelProps) {\n return (\n <MenuPrimitive.GroupLabel\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n 'px-4 py-2 text-xs font-medium text-secondary-foreground uppercase tracking-wider',\n 'data-[inset]:ps-8',\n className,\n )}\n {...props}\n />\n );\n}\nDropdownMenuLabel.displayName = 'DropdownMenu.Label';\n\n/**\n * Enhanced DropdownMenuItem with icon and shortcut support\n */\nexport interface DropdownMenuItemProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {\n /** Item content */\n children?: React.ReactNode;\n /** Icon displayed before the label */\n icon?: React.ReactNode;\n /** Keyboard shortcut displayed on the right */\n shortcut?: string;\n /** Makes the item destructive (red text) */\n destructive?: boolean;\n /** Whether the item is disabled */\n disabled?: boolean;\n /**\n * Render as a different element (Base UI pattern).\n * Use this to render as a custom component like Link or anchor.\n * @example render={<Link to=\"/profile\" />}\n */\n render?: React.ReactElement;\n /** Whether the item is inset */\n inset?: boolean;\n /** Variant for styling */\n variant?: 'default' | 'destructive';\n}\n\nfunction DropdownMenuItem({\n className,\n icon,\n shortcut,\n destructive = false,\n render,\n inset,\n variant = 'default',\n children,\n ...props\n}: DropdownMenuItemProps) {\n const isDestructive = destructive || variant === 'destructive';\n\n return (\n <MenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={isDestructive ? 'destructive' : variant}\n className={cn(\n 'group/dropdown-menu-item relative flex items-center gap-2 mx-1.5 px-2.5 py-2 rounded-md cursor-pointer outline-none',\n 'text-sm font-semibold text-secondary-foreground',\n 'focus:bg-muted focus:text-secondary-foreground',\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n 'data-[inset]:ps-8',\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n 'transition-[color,background-color,transform] duration-150 active:scale-[0.99]',\n isDestructive &&\n 'text-destructive focus:text-destructive focus:bg-destructive/10',\n className,\n )}\n render={render}\n {...props}\n >\n {icon && (\n <span\n className={cn(\n 'size-4 shrink-0 transition-colors duration-150',\n isDestructive ? 'text-destructive' : 'text-current',\n )}\n >\n {icon}\n </span>\n )}\n <span className=\"flex-1\">{children}</span>\n {shortcut && (\n <DropdownMenuShortcutBadge className=\"transition-colors duration-150 group-focus/dropdown-menu-item:bg-primary/10 group-focus/dropdown-menu-item:text-primary\">\n {shortcut}\n </DropdownMenuShortcutBadge>\n )}\n </MenuPrimitive.Item>\n );\n}\nDropdownMenuItem.displayName = 'DropdownMenu.Item';\n\nexport interface DropdownMenuSeparatorProps\n extends React.HTMLAttributes<HTMLDivElement> {}\n\n/**\n * Enhanced DropdownMenuSeparator\n */\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: DropdownMenuSeparatorProps) {\n return (\n <MenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn('my-1 h-px bg-surface-2', className)}\n {...props}\n />\n );\n}\nDropdownMenuSeparator.displayName = 'DropdownMenu.Separator';\n\nexport interface DropdownMenuItemsProps\n extends React.HTMLAttributes<HTMLDivElement> {}\n\n/**\n * Container for menu items with proper padding\n */\nfunction DropdownMenuItems({\n className,\n children,\n ...props\n}: DropdownMenuItemsProps) {\n return (\n <div\n data-slot=\"dropdown-menu-items\"\n className={cn('py-1', className)}\n {...props}\n >\n {children}\n </div>\n );\n}\nDropdownMenuItems.displayName = 'DropdownMenu.Items';\n\n/**\n * Styled shortcut badge that matches Figma design (uses Kbd wrapper)\n */\nfunction DropdownMenuShortcutBadge({\n className,\n children,\n ...props\n}: React.ComponentProps<'kbd'>) {\n return (\n <Kbd variant=\"outline\" size=\"xs\" className={className} {...props}>\n {children}\n </Kbd>\n );\n}\nDropdownMenuShortcutBadge.displayName = 'DropdownMenu.ShortcutBadge';\n\n// ============================================================================\n// SimpleDropdownMenu (with trigger prop pattern)\n// ============================================================================\n\nexport interface SimpleDropdownMenuProps {\n /** The element that triggers the dropdown (required) */\n trigger: React.ReactElement;\n /** Dropdown content (typically DropdownMenu.Popup component) */\n children?: React.ReactNode;\n /** Controlled open state. When provided, component is controlled. */\n open?: boolean;\n /** Callback when open state changes */\n onOpenChange?: (open: boolean) => void;\n}\n\n/**\n * Simplified DropdownMenu component with explicit trigger prop.\n * Prevents nested button hydration errors by using base-ui's render prop.\n *\n * @example\n * <SimpleDropdownMenu trigger={<Button>Menu</Button>}>\n * <DropdownMenu.Popup>\n * <DropdownMenu.Items>\n * <DropdownMenu.Item>Option 1</DropdownMenu.Item>\n * </DropdownMenu.Items>\n * </DropdownMenu.Popup>\n * </SimpleDropdownMenu>\n */\nfunction SimpleDropdownMenu({\n trigger,\n open,\n onOpenChange,\n children,\n}: SimpleDropdownMenuProps) {\n return (\n <DropdownMenuRoot open={open} onOpenChange={onOpenChange}>\n <DropdownMenuTrigger render={trigger} />\n {children}\n </DropdownMenuRoot>\n );\n}\nSimpleDropdownMenu.displayName = 'DropdownMenu.Simple';\n\n// ============================================================================\n// Compound Export (Dot Notation Pattern)\n// ============================================================================\n\nexport const DropdownMenu = Object.assign(DropdownMenuRoot, {\n Root: DropdownMenuRoot,\n Portal: DropdownMenuPortal,\n Trigger: DropdownMenuTrigger,\n Popup: DropdownMenuPopup,\n Group: DropdownMenuGroup,\n Label: DropdownMenuLabel,\n Item: DropdownMenuItem,\n CheckboxItem: DropdownMenuCheckboxItem,\n RadioGroup: DropdownMenuRadioGroup,\n RadioItem: DropdownMenuRadioItem,\n Separator: DropdownMenuSeparator,\n Shortcut: DropdownMenuShortcut,\n ShortcutBadge: DropdownMenuShortcutBadge,\n Sub: DropdownMenuSub,\n SubTrigger: DropdownMenuSubTrigger,\n SubPopup: DropdownMenuSubPopup,\n Header: DropdownMenuHeader,\n Items: DropdownMenuItems,\n Simple: SimpleDropdownMenu,\n});\n\n// ============================================================================\n// Type Exports\n// ============================================================================\n\nexport type DropdownMenuPopupWrapperProps = DropdownMenuPopupProps;\nexport type DropdownMenuItemWrapperProps = DropdownMenuItemProps;\nexport type DropdownMenuHeaderWrapperProps = DropdownMenuHeaderProps;\n"],"x_google_ignoreList":[0,1,2],"mappings":"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"}