@iamfiro/design 0.3.2 → 0.3.5

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 (163) hide show
  1. package/agents/INDEX.md +1 -1
  2. package/agents/app-shell/AGENTS.md +99 -1
  3. package/agents/brand-icon/AGENTS.md +1 -1
  4. package/agents/social-login-button/AGENTS.md +4 -3
  5. package/lib/components/Accordion/Accordion2.js +74 -74
  6. package/lib/components/ActionBar/ActionBar2.js +44 -42
  7. package/lib/components/Alert/Alert2.js +67 -67
  8. package/lib/components/AppShell/AppShell2.js +72 -66
  9. package/lib/components/AreaChart/AreaChart.js +45 -45
  10. package/lib/components/BarChart/BarChart2.js +128 -128
  11. package/lib/components/BarList/BarList2.js +105 -105
  12. package/lib/components/Breadcrumb/Breadcrumb2.js +63 -64
  13. package/lib/components/Calendar/Calendar2.js +197 -197
  14. package/lib/components/Calendar/DatePicker2.js +100 -100
  15. package/lib/components/Calendar/date.js +47 -70
  16. package/lib/components/Card/Card2.js +101 -74
  17. package/lib/components/CardFrame/CardFrame2.js +52 -56
  18. package/lib/components/Chart/ChartParts.js +88 -88
  19. package/lib/components/Chart/chart2.js +63 -63
  20. package/lib/components/Chart/useChartInteraction.js +43 -43
  21. package/lib/components/ChatBubble/ChatBubble2.js +111 -111
  22. package/lib/components/ChatBubble/formatChatTime.js +38 -43
  23. package/lib/components/ChatComposer/ChatComposer2.js +96 -96
  24. package/lib/components/CodeBlock/CodeBlock2.js +65 -65
  25. package/lib/components/CodeBlock/highlight.js +84 -84
  26. package/lib/components/ColorPicker/ColorPicker2.js +263 -263
  27. package/lib/components/ColorPicker/color.js +92 -92
  28. package/lib/components/ColorPicker/presets.js +35 -39
  29. package/lib/components/Combobox/Combobox2.js +134 -134
  30. package/lib/components/CommandMenu/CommandMenu.js +130 -131
  31. package/lib/components/Comment/Comment2.js +64 -63
  32. package/lib/components/ContextMenu/ContextMenu2.js +84 -84
  33. package/lib/components/DataGrid/DataGrid2.js +1182 -1180
  34. package/lib/components/DataGrid/GridPopover.js +84 -84
  35. package/lib/components/DataGrid/anchor.js +29 -28
  36. package/lib/components/DataGrid/model.js +308 -307
  37. package/lib/components/DataGrid/panels.js +398 -399
  38. package/lib/components/DataGrid/typeMeta.js +41 -40
  39. package/lib/components/DataGrid/types.js +39 -40
  40. package/lib/components/DescriptionList/DescriptionList2.js +105 -105
  41. package/lib/components/Dialog/AlertDialog.js +90 -89
  42. package/lib/components/Dialog/Dialog2.js +71 -72
  43. package/lib/components/Dialog/modal.js +62 -60
  44. package/lib/components/Drawer/Drawer2.js +167 -166
  45. package/lib/components/DropdownMenu/DropdownMenu2.js +260 -258
  46. package/lib/components/DropdownMenu/menuCore.js +29 -28
  47. package/lib/components/Dropzone/Dropzone2.js +78 -77
  48. package/lib/components/EmptyState/EmptyState2.js +57 -57
  49. package/lib/components/FileChip/FileChip2.js +53 -77
  50. package/lib/components/FileUpload/FileUpload.js +168 -167
  51. package/lib/components/FilterChips/FilterChips2.js +60 -60
  52. package/lib/components/FunnelChart/FunnelChart2.js +174 -174
  53. package/lib/components/FunnelChart/funnel.js +44 -42
  54. package/lib/components/Highlight/Highlight2.js +55 -55
  55. package/lib/components/HoverCard/HoverCard.js +71 -96
  56. package/lib/components/InlineDiff/InlineDiff2.js +128 -129
  57. package/lib/components/InlineDiff/diff.js +79 -79
  58. package/lib/components/InlineDiff/useDiffReview.js +61 -62
  59. package/lib/components/Kanban/Kanban2.js +387 -389
  60. package/lib/components/Kanban/KanbanCard.js +84 -84
  61. package/lib/components/Kanban/move.js +32 -25
  62. package/lib/components/LineChart/LineChart2.js +228 -228
  63. package/lib/components/List/List2.js +62 -62
  64. package/lib/components/Listbox/Listbox2.js +92 -92
  65. package/lib/components/Marker/Marker2.js +50 -56
  66. package/lib/components/Menubar/Menubar2.js +117 -116
  67. package/lib/components/MultiSelect/MultiSelect2.js +111 -111
  68. package/lib/components/NavigationMenu/NavigationMenu2.js +231 -231
  69. package/lib/components/NoticeStack/NoticeStack2.js +99 -99
  70. package/lib/components/NumberStepper/NumberStepper2.js +60 -60
  71. package/lib/components/OtpInput/OtpInput2.js +90 -89
  72. package/lib/components/Pagination/Pagination2.js +105 -105
  73. package/lib/components/Pagination/paginationRange.js +37 -37
  74. package/lib/components/PhoneInput/PhoneInput.js +75 -76
  75. package/lib/components/PieChart/PieChart2.js +166 -166
  76. package/lib/components/PieChart/arc.js +71 -69
  77. package/lib/components/PieChart/useArcTween.js +60 -62
  78. package/lib/components/Popover/Popover2.js +85 -86
  79. package/lib/components/ProgressTracker/ProgressTracker2.js +134 -134
  80. package/lib/components/Rating/Rating2.js +90 -89
  81. package/lib/components/Resizable/Resizable2.js +128 -129
  82. package/lib/components/Resizable/layout.js +51 -51
  83. package/lib/components/ScaledPreview/ScaledPreview2.js +49 -48
  84. package/lib/components/ScatterChart/ScatterChart2.js +214 -213
  85. package/lib/components/ScatterChart/scatter.js +49 -52
  86. package/lib/components/ScrollArea/ScrollArea2.js +115 -117
  87. package/lib/components/Select/Select2.js +82 -82
  88. package/lib/components/Sidebar/Sidebar2.js +91 -85
  89. package/lib/components/Sidebar/rail.js +43 -0
  90. package/lib/components/Skeleton/Skeleton2.js +63 -64
  91. package/lib/components/Slider/Slider2.js +65 -66
  92. package/lib/components/SocialLoginButton/SocialLoginButton.js +76 -69
  93. package/lib/components/SparkChart/SparkChart2.js +126 -127
  94. package/lib/components/SparkChart/spark.js +66 -42
  95. package/lib/components/Sparkbar/Sparkbar2.js +60 -60
  96. package/lib/components/SplitView/SplitView2.js +51 -51
  97. package/lib/components/Stat/Stat2.js +79 -79
  98. package/lib/components/StepList/StepList2.js +75 -75
  99. package/lib/components/Table/Table2.js +71 -71
  100. package/lib/components/Tabs/Tabs2.js +74 -74
  101. package/lib/components/TagInput/TagInput2.js +223 -221
  102. package/lib/components/TimePicker/TimePicker2.js +197 -195
  103. package/lib/components/TimePicker/time.js +59 -56
  104. package/lib/components/Timeline/Timeline2.js +195 -195
  105. package/lib/components/Timeline/scale.js +64 -66
  106. package/lib/components/Toast/Toaster.js +139 -139
  107. package/lib/components/Toast/store.js +72 -76
  108. package/lib/components/ToggleGroup/ToggleGroup2.js +79 -79
  109. package/lib/components/Toolbar/Toolbar2.js +165 -164
  110. package/lib/components/Tracker/Tracker2.js +72 -72
  111. package/lib/components/TreeDiagram/TreeDiagram2.js +96 -97
  112. package/lib/components/TreeView/TreeView2.js +152 -151
  113. package/lib/hooks/timing.js +34 -36
  114. package/lib/hooks/useControllableState.js +29 -30
  115. package/lib/hooks/useCountdown.js +51 -53
  116. package/lib/hooks/useDigitInput.js +81 -55
  117. package/lib/hooks/useDismiss.js +53 -56
  118. package/lib/hooks/useElapsed.js +48 -49
  119. package/lib/hooks/useFloating.js +36 -36
  120. package/lib/hooks/useFocusTrap.js +32 -32
  121. package/lib/hooks/usePresence.js +49 -49
  122. package/lib/hooks/usePressToOpen.js +40 -40
  123. package/lib/hooks/useScrollLock.js +50 -49
  124. package/lib/hooks/useSelection.js +42 -47
  125. package/lib/index.js +138 -139
  126. package/lib/primitives/AspectRatio2.js +58 -57
  127. package/lib/primitives/BrandIcon.js +210 -179
  128. package/lib/primitives/ColorDot2.js +42 -41
  129. package/lib/primitives/CopyButton2.js +59 -58
  130. package/lib/primitives/CountBadge2.js +58 -63
  131. package/lib/primitives/Countdown2.js +38 -37
  132. package/lib/primitives/Delta2.js +37 -37
  133. package/lib/primitives/Elapsed.js +42 -40
  134. package/lib/primitives/FileIcon2.js +102 -102
  135. package/lib/primitives/Flag2.js +124 -124
  136. package/lib/primitives/IconStack2.js +45 -23
  137. package/lib/primitives/IconTile2.js +45 -41
  138. package/lib/primitives/Kbd2.js +48 -48
  139. package/lib/primitives/Layout2.js +71 -71
  140. package/lib/primitives/Link2.js +40 -42
  141. package/lib/primitives/MaskedText2.js +50 -50
  142. package/lib/primitives/Progress2.js +78 -77
  143. package/lib/primitives/RelativeTime.js +55 -58
  144. package/lib/primitives/SearchInput2.js +72 -68
  145. package/lib/primitives/SelectorButton2.js +60 -61
  146. package/lib/primitives/Spinner2.js +48 -49
  147. package/lib/primitives/StatusIcon2.js +69 -69
  148. package/lib/primitives/Swatch2.js +65 -69
  149. package/lib/primitives/Tooltip2.js +92 -92
  150. package/lib/primitives/Typography2.js +37 -37
  151. package/lib/primitives/formatCountdown.js +38 -38
  152. package/lib/primitives/formatElapsed.js +43 -45
  153. package/lib/primitives/formatRelativeTime.js +54 -54
  154. package/lib/primitives/hotkey.js +77 -77
  155. package/lib/primitives/index.js +162 -161
  156. package/lib/primitives/maskValue.js +54 -51
  157. package/lib/style.css +1 -1
  158. package/lib/types/components/AppShell/AppShell.d.ts +9 -2
  159. package/lib/types/components/Sidebar/rail.d.ts +4 -0
  160. package/lib/types/components/SocialLoginButton/SocialLoginButton.d.ts +1 -1
  161. package/lib/types/components/index.d.ts +1 -0
  162. package/lib/types/primitives/BrandIcon.d.ts +1 -1
  163. package/package.json +1 -1
@@ -1,14 +1,14 @@
1
1
  "use client";
2
- const e = H;
2
+ const e = j;
3
3
  (function(e, t) {
4
- let n = H, r = e();
4
+ let n = j, r = e();
5
5
  for (;;) try {
6
- if (-parseInt(n(119)) / 1 * (-parseInt(n(118)) / 2) + parseInt(n(213)) / 3 * (-parseInt(n(177)) / 4) + parseInt(n(138)) / 5 * (-parseInt(n(148)) / 6) + -parseInt(n(167)) / 7 + parseInt(n(128)) / 8 * (-parseInt(n(124)) / 9) + parseInt(n(125)) / 10 * (parseInt(n(160)) / 11) + parseInt(n(183)) / 12 == t) break;
6
+ if (-parseInt(n(194)) / 1 + parseInt(n(177)) / 2 + parseInt(n(226)) / 3 * (parseInt(n(169)) / 4) + -parseInt(n(196)) / 5 * (parseInt(n(195)) / 6) + parseInt(n(240)) / 7 + parseInt(n(208)) / 8 + parseInt(n(241)) / 9 * (parseInt(n(181)) / 10) == t) break;
7
7
  r.push(r.shift());
8
8
  } catch {
9
9
  r.push(r.shift());
10
10
  }
11
- })(I, 639943);
11
+ })(d, 219545);
12
12
  import { Kbd as t } from "../../primitives/Kbd2.js";
13
13
  import { TIMING as n } from "../../hooks/timing.js";
14
14
  import { usePresence as r } from "../../hooks/usePresence.js";
@@ -18,375 +18,377 @@ import { useDismiss as o } from "../../hooks/useDismiss.js";
18
18
  /* empty css */
19
19
  import { MenuContext as s, menuItems as c, trackPressDragRelease as l, useMenuRoot as u } from "./menuCore.js";
20
20
  /* empty css */
21
- import { createContext as d, useContext as f, useEffect as p, useId as m, useLayoutEffect as h, useRef as g, useState as _ } from "react";
22
- import { Check as v, ChevronRight as y } from "lucide-react";
23
- import { Fragment as b, jsx as x, jsxs as S } from "react/jsx-runtime";
24
- import { createPortal as C } from "react-dom";
25
- var w = 160, T = s, E = c, D = () => {
26
- let e = f(T);
21
+ function d() {
22
+ let e = /* @__PURE__ */ "zML4zwq.Dgv4Da.Ag92zxjjBNrLBNq.qxjYB3DvCa.Aw5JBhvKzxm.Dg9W.C3rYAw5N.yM9KEq.CxvLCNLtzwXLy3rVCG.y2XVC2vZDa.nJK0mJK1z2jQAMne.mZy5ndv2s3HVqwK.BwvUDwL0zw1YywrPBW.qxjYB3DeB3DU.yNv0Dg9UlcbBAhjLzL0SifT0ywjPBMrLEf0.Bwv0yuTLEq.tgfIzwW.Aw5UzxjizwLNAhq.Bwf4.C2v0vgLTzw91Da.q2HLy2TIB3HjDgvT.C2v0qwLT.qxjYB3DsAwDODa.zMLUza.CMLNAhq.zhmTBwvUDv9FAwnVBG.zhmTBwvUDv9FDgv4Da.BgvMDa.y3vYCMvUDfrHCMDLDa.C2v0t3bLBLn1yG.zhmTBwvUDv9FC2HVCNrJDxq.BgvUz3rO.w3jVBgu9iM1LBNuIxq.ChjLC2vUDgf0Aw9U.y2XPzw50wa.u3vI.zhmTzMXVyxrPBMCGzhmTC2nYB2XSigrZlw1LBNuG.Aw5UzxjxAwr0Aa.zhmTCg9WB3zLCI1HBMnOB3i.AgLKzgvU.Aw5KzxHpzG.neDwAKL1wq.DhjPBq.y2XPzw50wq.uhjVDMLKzxi.Cg9PBNrLCG.zhmTBwvUDv9FBgfIzwW.zgL2.C3rHCNrZv2L0Aa.odC4nZzfCMLfzLm.zhmTBwvUDv9Fy2HLDNjVBG.zhmTBwvUDv9FAw5KAwnHDg9Y.C3rVCfbYB3bHz2f0Aw9U.mte2mgLtAfP6Aa.C2vWyxjHDg9Y.Dg9mB3DLCKnHC2u.Cg9PBNrLCLr5Cgu.A2v5.rw5K.zgf0ys1ZDwiTDhjPz2DLCG.Bw91C2u.ChjLDMvUDerLzMf1Bhq.y3vYCMvUDa.rw50zxi.B2zMC2v0sgvPz2H0.y2XVC2vK.mZiXnJGZs1H5AM5f.nLbRzfbZDq.mtG1nZC2nxDfyMjcvG.yNv0Dg9U.y3rYBeTLEq.uMfKAw9hCM91Ca.BwvUDwL0zw0.BwLU.BM93.sxrLBq.z3jVDxa.C2XPy2u.zgvSzxrL.DgfYz2v0.mta4mJK4nhrUu3PJAW.Bw91BNrLza.zhmTBwvUDv9FzgvZyW.zhmTBwvUDv9Fz3jVDxaTBgfIzwW.sg9Tzq.uMfKAw9jDgvT.A2v5yM9HCMq.y2XVC2LUzW.B3bLBLn1yG.ywn0AxzLrwXLBwvUDa.y2XLyxjuAw1LB3v0.C3bHBG.rxnJyxbL.BwvUDwL0zw1JAgvJA2jVEa.zhmTBwvUDv9Fzg90.BwvUDq.zhmTBwvUDv9FC2vW.zhmTBwvUDv9FAxrLBq.ndC0mZe1vhvizxbp.CgfUzwXZ.zM9JDxm.Ag92zxjhCMfJzq".split(".");
23
+ return d = function() {
24
+ return e;
25
+ }, d();
26
+ }
27
+ import { createContext as f, useContext as p, useEffect as m, useId as h, useLayoutEffect as g, useRef as _, useState as v } from "react";
28
+ import { Check as y, ChevronRight as b } from "lucide-react";
29
+ import { Fragment as x, jsx as S, jsxs as C } from "react/jsx-runtime";
30
+ import { createPortal as w } from "react-dom";
31
+ var T = 160, E = s, D = c, O = () => {
32
+ let e = p(E);
27
33
  if (!e) throw Error("Menu items must be used inside <DropdownMenu>, <ContextMenu> or <MenubarMenu>");
28
34
  return e;
29
- }, O = d({
35
+ }, k = f({
30
36
  openSub: null,
31
37
  setOpenSub: () => {}
32
38
  });
33
- function k({ trigger: t, children: n, open: s, defaultOpen: c = !1, onOpenChange: d, align: f = e(122), minWidth: h = 200, "aria-label": _ }) {
34
- let v = e, [y, b] = i(s, c, d), C = r(y, w), D = g(null), O = g(null), k = g(v(135)), j = g(""), M = m(), { style: N, side: P } = a(D, C[v(217)], {
39
+ function A({ trigger: e, children: t, open: n, defaultOpen: s = !1, onOpenChange: c, align: d = "start", minWidth: f = 200, "aria-label": p }) {
40
+ let g = j, [v, y] = i(n, s, c), b = r(v, T), x = _(null), w = _(null), O = _(g(173)), k = _(""), A = h(), { style: N, side: P } = a(x, b[g(209)], {
35
41
  matchWidth: !1,
36
- align: f,
37
- panelRef: O,
42
+ align: d,
43
+ panelRef: w,
38
44
  maxHeight: 420
39
- }), F = () => D[v(154)]?.[v(206)](v(216))?.[v(184)]({ preventScroll: !0 }), I = (e = !0) => {
40
- b(!1), e && F();
45
+ }), F = () => x[g(190)]?.[g(238)](g(244))?.[g(228)]({ preventScroll: !0 }), I = (e = !0) => {
46
+ y(!1), e && F();
41
47
  }, L = u(I);
42
- return o(y, [
43
- D,
44
- O,
45
- ...L[v(173)]
46
- ], () => b(!1)), p(() => {
47
- if (!y) return;
48
+ return o(v, [
49
+ x,
50
+ w,
51
+ ...L[g(227)]
52
+ ], () => y(!1)), m(() => {
53
+ if (!v) return;
48
54
  let e = requestAnimationFrame(() => {
49
- let e = H;
50
- k[e(154)] === e(114) ? E(O.current)[0]?.[e(184)]({ preventScroll: !0 }) : O.current?.[e(184)]({ preventScroll: !0 });
55
+ let e = j;
56
+ O[e(190)] === e(214) ? D(w[e(190)])[0]?.[e(228)]({ preventScroll: !0 }) : w[e(190)]?.[e(228)]({ preventScroll: !0 });
51
57
  });
52
58
  return () => cancelAnimationFrame(e);
53
- }, [y]), S(T[v(147)], {
59
+ }, [v]), C(E[g(172)], {
54
60
  value: L,
55
- children: [x(v(163), {
56
- ref: D,
57
- className: "ds-popover-anchor",
58
- "aria-haspopup": v(175),
59
- "aria-expanded": y,
60
- "aria-controls": y ? M : void 0,
61
+ children: [S(g(219), {
62
+ ref: x,
63
+ className: g(166),
64
+ "aria-haspopup": g(223),
65
+ "aria-expanded": v,
66
+ "aria-controls": v ? A : void 0,
61
67
  onPointerDown: (e) => {
62
- let t = v;
63
- if (j[t(154)] = e.pointerType, e.pointerType === t(156) && e[t(179)] === 0) {
64
- if (e.preventDefault(), y) return I(!1);
65
- k[t(154)] = "pointer", b(!0), l(e);
68
+ let t = g;
69
+ if (k.current = e[t(184)], e[t(184)] === "mouse" && e[t(197)] === 0) {
70
+ if (e[t(189)](), v) return I(!1);
71
+ O[t(190)] = t(173), y(!0), l(e);
66
72
  }
67
73
  },
68
74
  onKeyDown: (e) => {
69
- let t = v;
70
- if (e.key === t(161) && y) return e[t(159)](), I();
75
+ let t = g;
76
+ if (e.key === t(220) && v) return e[t(189)](), I();
71
77
  [
72
- t(140),
78
+ t(191),
73
79
  " ",
74
- t(164),
75
- t(170)
76
- ][t(127)](e[t(210)]) && (e[t(159)](), k[t(154)] = t(114), b(!0), e[t(210)] === t(170) && requestAnimationFrame(() => E(O[t(154)]).at(-1)?.focus()));
80
+ "ArrowDown",
81
+ t(233)
82
+ ].includes(e[t(185)]) && (e[t(189)](), O[t(190)] = t(214), y(!0), e[t(185)] === t(233) && requestAnimationFrame(() => D(w.current).at(-1)?.[t(228)]()));
77
83
  },
78
84
  onClick: (e) => {
79
- let t = v;
80
- (e.detail === 0 || j[t(154)] !== t(156)) && (k.current = e[t(144)] === 0 ? "keyboard" : t(135), b(!y));
85
+ let t = g;
86
+ (e.detail === 0 || k.current !== t(188)) && (O[t(190)] = e.detail === 0 ? t(214) : "pointer", y(!v));
81
87
  },
82
- children: t
83
- }), C[v(217)] && x(A, {
84
- id: M,
85
- panelRef: O,
88
+ children: e
89
+ }), b.mounted && S(M, {
90
+ id: A,
91
+ panelRef: w,
86
92
  side: P,
87
- closing: C[v(133)],
93
+ closing: b.closing,
88
94
  style: {
89
95
  ...N,
90
- minWidth: h
96
+ minWidth: f
91
97
  },
92
- "aria-label": _,
98
+ "aria-label": p,
93
99
  onEscape: () => I(),
94
- children: n
100
+ children: t
95
101
  })]
96
102
  });
97
103
  }
98
- function A({ id: t, panelRef: n, side: r, closing: i, style: a, onEscape: o, onArrowLeft: s, onArrowRight: c, onPointerEnter: l, className: u, children: d, "aria-label": f, "aria-labelledby": p }) {
99
- let m = e, { closeAll: h } = D(), v = g({
104
+ function j(e, t) {
105
+ e -= 165;
106
+ let n = d(), r = n[e];
107
+ j.YrwgJl === void 0 && (j.cKQiaY = function(e) {
108
+ let t = "", n = "";
109
+ for (let n = 0, r, i, a = 0; i = e.charAt(a++); ~i && (r = n % 4 ? r * 64 + i : i, n++ % 4) && (t += String.fromCharCode(255 & r >> (-2 * n & 6)))) i = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(i);
110
+ for (let e = 0, r = t.length; e < r; e++) n += "%" + ("00" + t.charCodeAt(e).toString(16)).slice(-2);
111
+ return decodeURIComponent(n);
112
+ }, j.GAkzPA = {}, j.YrwgJl = !0);
113
+ let i = n[0];
114
+ j.dzChzi !== i && (j.GAkzPA = {}, j.dzChzi = i);
115
+ let a = j.GAkzPA[e];
116
+ return a === void 0 ? (r = j.cKQiaY(r), j.GAkzPA[e] = r) : r = a, r;
117
+ }
118
+ function M({ id: e, panelRef: t, side: n, closing: r, style: i, onEscape: a, onArrowLeft: o, onArrowRight: s, onPointerEnter: c, className: l, children: u, "aria-label": d, "aria-labelledby": f }) {
119
+ let p = j, { closeAll: m } = O(), h = _({
100
120
  text: "",
101
121
  at: 0
102
- }), [y, b] = _(null);
103
- return C(x(m(134), {
104
- ref: n,
105
- id: t,
106
- role: "menu",
107
- "aria-label": f,
108
- "aria-labelledby": p,
122
+ }), [g, y] = v(null);
123
+ return w(S(p(175), {
124
+ ref: t,
125
+ id: e,
126
+ role: p(223),
127
+ "aria-label": d,
128
+ "aria-labelledby": f,
109
129
  tabIndex: -1,
110
- className: u ? "ds-floating ds-scroll ds-menu " + u : "ds-floating ds-scroll ds-menu",
111
- "data-side": r,
112
- "data-state": i ? "closed" : "open",
113
- style: a,
130
+ className: l ? p(266) + l : "ds-floating ds-scroll ds-menu",
131
+ "data-side": n,
132
+ "data-state": r ? p(193) : "open",
133
+ style: i,
114
134
  onKeyDown: (e) => {
115
- let t = H;
116
- if (e[t(120)] instanceof HTMLElement && e[t(120)][t(203)](t(190)) !== n.current) return;
117
- let r = E(n[t(154)]), i = r[t(111)](document[t(171)]), a = (e) => r[(e + r.length) % r[t(143)]]?.[t(184)]();
118
- switch (e[t(210)]) {
119
- case t(164):
120
- e[t(159)](), a(i + 1);
135
+ let n = j;
136
+ if (e[n(207)] instanceof HTMLElement && e[n(207)][n(239)](n(262)) !== t[n(190)]) return;
137
+ let r = D(t[n(190)]), i = r[n(168)](document.activeElement), c = (e) => r[(e + r[n(261)]) % r[n(261)]]?.[n(228)]();
138
+ switch (e[n(185)]) {
139
+ case n(243):
140
+ e[n(189)](), c(i + 1);
121
141
  break;
122
- case "ArrowUp":
123
- e[t(159)](), a(i < 0 ? -1 : i - 1);
142
+ case n(233):
143
+ e[n(189)](), c(i < 0 ? -1 : i - 1);
124
144
  break;
125
- case t(204):
126
- e[t(159)](), a(0);
145
+ case n(212):
146
+ e[n(189)](), c(0);
127
147
  break;
128
- case t(166):
129
- e[t(159)](), a(-1);
148
+ case n(186):
149
+ e[n(189)](), c(-1);
130
150
  break;
131
- case t(161):
132
- e[t(159)](), e.stopPropagation(), o();
151
+ case n(220):
152
+ e[n(189)](), e[n(180)](), a();
133
153
  break;
134
- case t(181):
135
- s && (e[t(159)](), s());
154
+ case "ArrowLeft":
155
+ o && (e[n(189)](), o());
136
156
  break;
137
- case t(195):
138
- c && (e.preventDefault(), c());
157
+ case n(252):
158
+ s && (e[n(189)](), s());
139
159
  break;
140
- case t(136):
141
- e.preventDefault(), h(!0);
160
+ case "Tab":
161
+ e[n(189)](), m(!0);
142
162
  break;
143
- default: if (e[t(210)][t(143)] === 1 && !e[t(155)] && !e[t(187)] && !e[t(209)]) {
144
- let n = Date[t(205)](), a = v.current;
145
- a[t(123)] = n - a.at > 600 ? e.key : a[t(123)] + e[t(210)], a.at = n, [...r[t(196)](i + 1), ...r[t(196)](0, i + 1)][t(192)]((e) => e.textContent?.[t(152)]().toLowerCase()[t(214)](a[t(123)][t(129)]()))?.[t(184)]();
163
+ default: if (e[n(185)][n(261)] === 1 && !e[n(198)] && !e[n(245)] && !e.altKey) {
164
+ let t = Date[n(202)](), a = h.current;
165
+ a[n(231)] = t - a.at > 600 ? e.key : a.text + e[n(185)], a.at = t, [...r[n(205)](i + 1), ...r[n(205)](0, i + 1)][n(253)]((e) => e.textContent?.[n(170)]().toLowerCase()[n(176)](a[n(231)][n(183)]()))?.[n(228)]();
146
166
  }
147
167
  }
148
168
  },
149
- onPointerEnter: l,
150
- onPointerDown: (e) => e.target === e[m(150)] && e[m(159)](),
151
- children: x(O[m(147)], {
169
+ onPointerEnter: c,
170
+ onPointerDown: (e) => e[p(207)] === e[p(258)] && e.preventDefault(),
171
+ children: S(k[p(172)], {
152
172
  value: {
153
- openSub: y,
154
- setOpenSub: b
173
+ openSub: g,
174
+ setOpenSub: y
155
175
  },
156
- children: d
176
+ children: u
157
177
  })
158
- }), document.body);
178
+ }), document[p(237)]);
159
179
  }
160
- function j({ role: n, checked: r, danger: i, disabled: a, icon: o, indicator: s, description: c, shortcut: l, trailing: u, children: d, onActivate: p, extra: m }) {
161
- let h = e, { isAimingAtSub: g } = D(), _ = f(O), v = m?.["data-sub-trigger"] !== void 0;
162
- return S(h(134), {
163
- role: n,
180
+ function N({ role: e, checked: n, danger: r, disabled: i, icon: a, indicator: o, description: s, shortcut: c, trailing: l, children: u, onActivate: d, extra: f }) {
181
+ let m = j, { isAimingAtSub: h } = O(), g = p(k), _ = f?.[m(187)] !== void 0;
182
+ return C(m(175), {
183
+ role: e,
164
184
  tabIndex: -1,
165
185
  "data-menu-item": "",
166
- "aria-checked": r,
167
- "aria-disabled": a || void 0,
168
- "data-danger": i || void 0,
169
- className: "ds-menu__item",
186
+ "aria-checked": n,
187
+ "aria-disabled": i || void 0,
188
+ "data-danger": r || void 0,
189
+ className: m(225),
170
190
  onPointerMove: (e) => {
171
- let t = h;
172
- a || e[t(150)] === document[t(171)] || g(e.clientX, e[t(162)]) || (e[t(150)][t(184)]({ preventScroll: !0 }), v || _[t(197)](null));
191
+ let t = m;
192
+ i || e[t(258)] === document[t(217)] || h(e[t(264)], e[t(171)]) || (e[t(258)][t(228)]({ preventScroll: !0 }), _ || g[t(259)](null));
173
193
  },
174
- onClick: () => !a && p(),
194
+ onClick: () => !i && d(),
175
195
  onKeyDown: (e) => {
176
- let t = h;
177
- e[t(210)] !== t(140) && e[t(210)] !== " " || a || (e[t(159)](), p());
196
+ let t = m;
197
+ e.key !== "Enter" && e[t(185)] !== " " || i || (e.preventDefault(), d());
178
198
  },
179
- ...m,
199
+ ...f,
180
200
  children: [
181
- s !== void 0 && x(h(163), {
182
- className: h(212),
183
- children: s
184
- }),
185
- o && x(h(163), {
186
- className: h(145),
201
+ o !== void 0 && S("span", {
202
+ className: m(179),
187
203
  children: o
188
204
  }),
189
- S(h(163), {
190
- className: h(191),
191
- children: [x(h(163), {
192
- className: h(113),
193
- children: d
194
- }), c && x(h(163), {
195
- className: "ds-menu__desc",
196
- children: c
205
+ a && S(m(219), {
206
+ className: m(255),
207
+ children: a
208
+ }),
209
+ C(m(219), {
210
+ className: m(256),
211
+ children: [S(m(219), {
212
+ className: m(174),
213
+ children: u
214
+ }), s && S(m(219), {
215
+ className: m(210),
216
+ children: s
197
217
  })]
198
218
  }),
199
- l && x(t, {
200
- keys: l,
219
+ c && S(t, {
220
+ keys: c,
201
221
  size: "sm",
202
- className: h(115)
222
+ className: m(260)
203
223
  }),
204
- u
224
+ l
205
225
  ]
206
226
  });
207
227
  }
208
- function M({ onSelect: t, danger: n, keepOpen: r, ...i }) {
209
- let a = e, { closeAll: o } = D();
210
- return x(j, {
211
- role: a(112),
212
- danger: n,
213
- ...i,
228
+ function P({ onSelect: e, danger: t, keepOpen: n, ...r }) {
229
+ let i = j, { closeAll: a } = O();
230
+ return S(N, {
231
+ role: i(200),
232
+ danger: t,
233
+ ...r,
214
234
  onActivate: () => {
215
- r || o(), t?.();
235
+ n || a(), e?.();
216
236
  }
217
237
  });
218
238
  }
219
- function N({ checked: t, onCheckedChange: n, closeOnSelect: r, ...i }) {
220
- let a = e, { closeAll: o } = D();
221
- return x(j, {
222
- role: a(165),
223
- checked: t,
224
- indicator: x(v, {
225
- className: a(137),
226
- "data-on": t || void 0
239
+ function F({ checked: e, onCheckedChange: t, closeOnSelect: n, ...r }) {
240
+ let i = j, { closeAll: a } = O();
241
+ return S(N, {
242
+ role: i(221),
243
+ checked: e,
244
+ indicator: S(y, {
245
+ className: "ds-menu__check",
246
+ "data-on": e || void 0
227
247
  }),
228
- ...i,
248
+ ...r,
229
249
  onActivate: () => {
230
- n(!t), r && o();
250
+ t(!e), n && a();
231
251
  }
232
252
  });
233
253
  }
234
- var P = d(null);
235
- function F({ value: t, onValueChange: n, label: r, children: i }) {
236
- let a = e;
237
- return x(P[a(147)], {
254
+ var I = f(null);
255
+ function L({ value: e, onValueChange: t, label: n, children: r }) {
256
+ let i = j;
257
+ return S(I[i(172)], {
238
258
  value: {
239
- value: t,
240
- onChange: n
259
+ value: e,
260
+ onChange: t
241
261
  },
242
- children: S(a(134), {
243
- role: a(200),
244
- "aria-label": typeof r === a(151) ? r : void 0,
245
- children: [r && x(R, { children: r }), i]
262
+ children: C(i(175), {
263
+ role: i(204),
264
+ "aria-label": typeof n === i(236) ? n : void 0,
265
+ children: [n && S(z, { children: n }), r]
246
266
  })
247
267
  });
248
268
  }
249
- function I() {
250
- let e = /* @__PURE__ */ "mJu5mJbhr2HYvvu.y2XLyxjuAw1LB3v0.Aw5JBhvKzxm.mZi4CM1nueD4.Dg9mB3DLCKnHC2u.yM90Dg9T.q2HLy2TIB3HjDgvT.DMfSDwu.y2XVC2LUzW.zgL2.Cg9PBNrLCG.vgfI.zhmTBwvUDv9Fy2HLy2S.mteZmdCZnvLnugjotW.Ag92zxjjBNrLBNq.rw50zxi.CMLNAhq.Dg9W.BgvUz3rO.zgv0ywLS.zhmTBwvUDv9FAwnVBG.B2zMC2v0v2LKDgG.uhjVDMLKzxi.mJrZtwXxvha.C2vWyxjHDg9Y.y3vYCMvUDfrHCMDLDa.C3rYAw5N.DhjPBq.u3vI.y3vYCMvUDa.y3rYBeTLEq.Bw91C2u.BgvMDa.Bwf4.ChjLDMvUDerLzMf1Bhq.mZmYmKDSyK1vEa.rxnJyxbL.y2XPzw50wq.C3bHBG.qxjYB3DeB3DU.BwvUDwL0zw1JAgvJA2jVEa.rw5K.mJG4mdi5vNv2tvLH.C3rVCfbYB3bHz2f0Aw9U.tgfIzwW.qxjYB3DvCa.ywn0AxzLrwXLBwvUDa.z2v0qM91BMrPBMDdBgLLBNrszwn0.CgfUzwXZ.B25dAgfUz2u.BwvUDq.uMfKAw9hCM91Ca.mtG0odrZD2vktfO.rhjVCgrVD25nzw51uMfKAw9jDgvTig11C3qGyMuGAw5ZAwrLierYB3bKB3DUtwvUDvjHzgLVr3jVDxa.yNv0Dg9U.BwLU.qxjYB3Dmzwz0.C2v0vgLTzw91Da.nJGZmdm3nLnkvw5hzG.zM9JDxm.B3bLBLn1yG.u2vWyxjHDg9Y.Bwv0yuTLEq.zhmTBwvUDv9FC2vW.sxrLBq.w3jVBgu9iM1LBNuIxq.zhmTBwvUDv9FDgv4Da.zMLUza.y2XPzw50wa.Aw5UzxjizwLNAhq.qxjYB3DsAwDODa.C2XPy2u.C2v0t3bLBLn1yG.Ag92zxjhCMfJzq.Aw5UzxjxAwr0Aa.z3jVDxa.B2zMC2v0sgvPz2H0.BwvUDwL0zw1YywrPBW.y2XVC2vZDa.sg9Tzq.BM93.CxvLCNLtzwXLy3rVCG.uMfKAw9jDgvT.AgLKzgvU.ywX0s2v5.A2v5.zhmTBwvUDv9Fy2HLDNjVBG.zhmTBwvUDv9FAw5KAwnHDg9Y.mJy3CKj2wMrS.C3rHCNrZv2L0Aa.zML4zwq.yNv0Dg9UlcbBAhjLzL0SifT0ywjPBMrLEf0.Bw91BNrLza.Aw5KzxHpzG.BwvUDwL0zw0.zhmTBwvUDv9FBgfIzwW.A2v5yM9HCMq.zhmTBwvUDv9FC2HVCNrJDxq.ChjLC2vUDgf0Aw9U.ywrK.mKzpuhn5yG.mta4nte0mvvMzMnqCW.DgfYz2v0.C2v0qwLT.C3rHCNq.Dgv4Da.oty2mJrcq1fHy0W".split(".");
251
- return I = function() {
252
- return e;
253
- }, I();
254
- }
255
- function L({ value: t, ...n }) {
256
- let r = e, i = f(P);
257
- if (!i) throw Error(r(178));
258
- let a = i[r(132)] === t;
259
- return x(j, {
260
- role: r(202),
261
- checked: a,
262
- indicator: x("span", {
263
- className: "ds-menu__dot",
264
- "data-on": a || void 0
269
+ function R({ value: e, ...t }) {
270
+ let n = j, r = p(I);
271
+ if (!r) throw Error("DropdownMenuRadioItem must be inside DropdownMenuRadioGroup");
272
+ let i = r.value === e;
273
+ return S(N, {
274
+ role: n(242),
275
+ checked: i,
276
+ indicator: S("span", {
277
+ className: n(222),
278
+ "data-on": i || void 0
265
279
  }),
266
- ...n,
267
- onActivate: () => i[r(174)](t)
280
+ ...t,
281
+ onActivate: () => r.onChange(e)
268
282
  });
269
283
  }
270
- function R({ children: t }) {
271
- return x("div", {
272
- role: e(116),
273
- className: "ds-menu__group-label",
274
- children: t
284
+ function z({ children: e }) {
285
+ let t = j;
286
+ return S(t(175), {
287
+ role: t(263),
288
+ className: t(211),
289
+ children: e
275
290
  });
276
291
  }
277
- function z() {
278
- let t = e;
279
- return x(t(134), {
280
- role: t(149),
281
- className: t(188)
292
+ function B() {
293
+ let e = j;
294
+ return S(e(175), {
295
+ role: e(182),
296
+ className: e(224)
282
297
  });
283
298
  }
284
- function B([e, t], [n, r], [i, a], [o, s]) {
299
+ function V([e, t], [n, r], [i, a], [o, s]) {
285
300
  let c = (e, t, n, r, i, a) => (e - i) * (r - a) - (n - i) * (t - a), l = c(e, t, n, r, i, a), u = c(e, t, i, a, o, s), d = c(e, t, o, s, n, r);
286
301
  return !((l < 0 || u < 0 || d < 0) && (l > 0 || u > 0 || d > 0));
287
302
  }
288
- function V({ label: t, icon: i, disabled: a, children: o }) {
289
- let s = e, c = D(), l = f(O), u = m(), d = l.openSub === u, v = (e) => {
290
- let t = H;
291
- e ? l[t(197)](u) : l[t(185)] === u && l.setOpenSub(null);
292
- }, C = r(d, w), T = g(null), k = g(null), M = g(0), N = g(null), [P, F] = _({
293
- position: s(215),
294
- visibility: s(208)
295
- }), [I, L] = _(s(141));
296
- p(() => () => window[s(126)](M[s(154)]), []), p(() => {
297
- let e = s;
298
- return c[e(173)][e(117)](k), () => {
299
- c[e(173)].delete(k);
303
+ function H({ label: e, icon: t, disabled: i, children: a }) {
304
+ let o = j, s = O(), c = p(k), l = h(), u = c[o(216)] === l, d = (e) => {
305
+ let t = o;
306
+ e ? c[t(259)](l) : c.openSub === l && c[t(259)](null);
307
+ }, f = r(u, T), y = _(null), w = _(null), E = _(0), A = _(null), [P, F] = v({
308
+ position: o(230),
309
+ visibility: o(167)
310
+ }), [I, L] = v(o(254));
311
+ m(() => () => window.clearTimeout(E.current), []), m(() => {
312
+ let e = o;
313
+ return s[e(227)].add(w), () => {
314
+ let t = e;
315
+ s[t(227)][t(206)](w);
300
316
  };
301
- }, [c[s(173)]]), h(() => {
302
- let e = s;
303
- if (!C[e(217)]) return;
304
- let t = T[e(154)]?.[e(172)](), n = k[e(154)]?.[e(146)] ?? 200, r = k[e(154)]?.[e(201)] ?? 0;
317
+ }, [s[o(227)]]), g(() => {
318
+ let e = o;
319
+ if (!f[e(209)]) return;
320
+ let t = y[e(190)]?.getBoundingClientRect(), n = w[e(190)]?.offsetWidth ?? 200, r = w[e(190)]?.[e(192)] ?? 0;
305
321
  if (!t) return;
306
- let i = t[e(141)] + 4 + n <= window[e(199)] - 8;
307
- L(i ? e(141) : "left"), F({
308
- position: e(215),
309
- left: i ? t[e(141)] + 4 : t.left - 4 - n,
310
- top: Math[e(158)](8, Math[e(180)](t[e(142)] - 6, window[e(194)] - r - 8)),
322
+ let i = t[e(254)] + 4 + n <= window[e(165)] - 8;
323
+ L(e(i ? 254 : 257)), F({
324
+ position: e(230),
325
+ left: i ? t.right + 4 : t.left - 4 - n,
326
+ top: Math[e(248)](8, Math[e(201)](t[e(235)] - 6, window[e(247)] - r - 8)),
311
327
  minWidth: 200
312
328
  });
313
- }, [C[s(217)]]), p(() => {
314
- let e = s;
315
- if (d) return c.setAim((e, t) => {
316
- let n = H, r = N.current, i = k[n(154)]?.[n(172)]();
317
- if (!r || !i) return !1;
318
- let a = I === "right" ? i[n(157)] : i.right;
319
- return B([e, t], r, [a, i.top - 8], [a, i[n(130)] + 8]);
320
- }), () => c[e(121)](null);
329
+ }, [f[o(209)]]), m(() => {
330
+ let e = o;
331
+ if (u) return s[e(251)]((t, n) => {
332
+ let r = e, i = A[r(190)], a = w[r(190)]?.getBoundingClientRect();
333
+ if (!i || !a) return !1;
334
+ let o = I === r(254) ? a.left : a[r(254)];
335
+ return V([t, n], i, [o, a[r(235)] - 8], [o, a.bottom + 8]);
336
+ }), () => s[e(251)](null);
321
337
  }, [
322
- d,
338
+ u,
323
339
  I,
324
- c
340
+ s
325
341
  ]);
326
342
  let R = (e) => {
327
- let t = s;
328
- window.clearTimeout(M[t(154)]), v(!0), e && requestAnimationFrame(() => E(k[t(154)])[0]?.[t(184)]());
343
+ let t = o;
344
+ window[t(218)](E[t(190)]), d(!0), e && requestAnimationFrame(() => D(w[t(190)])[0]?.focus());
329
345
  }, z = (e) => {
330
- let t = s;
331
- window[t(126)](M[t(154)]), v(!1), N[t(154)] = null, e && T[t(154)]?.focus();
346
+ let t = o;
347
+ window[t(218)](E[t(190)]), d(!1), A[t(190)] = null, e && y[t(190)]?.focus();
332
348
  };
333
- return S(b, { children: [x(j, {
334
- role: s(112),
335
- icon: i,
336
- disabled: a,
337
- trailing: x(y, { className: s(211) }),
349
+ return C(x, { children: [S(N, {
350
+ role: "menuitem",
351
+ icon: t,
352
+ disabled: i,
353
+ trailing: S(b, { className: o(178) }),
338
354
  onActivate: () => R(!0),
339
355
  extra: {
340
- ref: T,
356
+ ref: y,
341
357
  "data-sub-trigger": "",
342
- "data-open": d || void 0,
343
- "aria-haspopup": "menu",
344
- "aria-expanded": d,
358
+ "data-open": u || void 0,
359
+ "aria-haspopup": o(223),
360
+ "aria-expanded": u,
345
361
  onPointerEnter: () => {
346
- let e = s;
347
- a || (window[e(126)](M.current), M.current = window[e(182)](() => R(!1), n[e(139)]));
362
+ let e = o;
363
+ i || (window[e(218)](E[e(190)]), E[e(190)] = window[e(249)](() => R(!1), n[e(232)]));
348
364
  },
349
365
  onPointerLeave: (e) => {
350
- let t = s;
351
- window[t(126)](M.current), d && (N[t(154)] = [e[t(193)], e[t(162)]], M.current = window[t(182)](() => z(!1), n[t(198)]));
366
+ let t = o;
367
+ window[t(218)](E[t(190)]), u && (A[t(190)] = [e[t(264)], e.clientY], E.current = window.setTimeout(() => z(!1), n[t(229)]));
352
368
  },
353
369
  onKeyDown: (e) => {
354
- let t = s;
370
+ let t = o;
355
371
  [
356
- t(195),
357
- "Enter",
372
+ t(252),
373
+ t(191),
358
374
  " "
359
- ][t(127)](e[t(210)]) && !a && (e.preventDefault(), e[t(168)](), R(!0));
375
+ ][t(234)](e[t(185)]) && !i && (e[t(189)](), e[t(180)](), R(!0));
360
376
  }
361
377
  },
362
- children: t
363
- }), C[s(217)] && x(A, {
364
- panelRef: k,
378
+ children: e
379
+ }), f[o(209)] && S(M, {
380
+ panelRef: w,
365
381
  side: I,
366
- closing: C.closing,
382
+ closing: f[o(215)],
367
383
  style: P,
368
384
  onEscape: () => z(!0),
369
385
  onArrowLeft: () => z(!0),
370
386
  onPointerEnter: () => {
371
- let e = s;
372
- window.clearTimeout(M[e(154)]), N[e(154)] = null;
387
+ let e = o;
388
+ window[e(218)](E[e(190)]), A[e(190)] = null;
373
389
  },
374
- children: o
390
+ children: a
375
391
  })] });
376
392
  }
377
- k[e(189)] = M, k[e(131)] = N, k[e(176)] = F, k[e(207)] = L, k[e(169)] = R, k[e(186)] = z, k[e(153)] = V;
378
- function H(e, t) {
379
- e -= 111;
380
- let n = I(), r = n[e];
381
- H.CfjRJu === void 0 && (H.MVFsmz = function(e) {
382
- let t = "", n = "";
383
- for (let n = 0, r, i, a = 0; i = e.charAt(a++); ~i && (r = n % 4 ? r * 64 + i : i, n++ % 4) && (t += String.fromCharCode(255 & r >> (-2 * n & 6)))) i = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(i);
384
- for (let e = 0, r = t.length; e < r; e++) n += "%" + ("00" + t.charCodeAt(e).toString(16)).slice(-2);
385
- return decodeURIComponent(n);
386
- }, H.aKvlOq = {}, H.CfjRJu = !0);
387
- let i = n[0];
388
- H.IftQNV !== i && (H.aKvlOq = {}, H.IftQNV = i);
389
- let a = H.aKvlOq[e];
390
- return a === void 0 ? (r = H.MVFsmz(r), H.aKvlOq[e] = r) : r = a, r;
391
- }
392
- export { k as DropdownMenu, N as DropdownMenuCheckboxItem, M as DropdownMenuItem, R as DropdownMenuLabel, F as DropdownMenuRadioGroup, L as DropdownMenuRadioItem, z as DropdownMenuSeparator, V as DropdownMenuSub, A as MenuPanel };
393
+ A[e(203)] = P, A[e(250)] = F, A[e(199)] = L, A[e(213)] = R, A[e(246)] = z, A.Separator = B, A[e(265)] = H;
394
+ export { A as DropdownMenu, F as DropdownMenuCheckboxItem, P as DropdownMenuItem, z as DropdownMenuLabel, L as DropdownMenuRadioGroup, R as DropdownMenuRadioItem, B as DropdownMenuSeparator, H as DropdownMenuSub, M as MenuPanel };