@rescui/menu 0.13.8-RUI-297-Add-react-compiler-to-the-packages-build-dbbefd7b8.14 → 0.13.8-RUI-297-Add-react-compiler-to-the-packages-build-8aaaed4be.43

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.
@@ -1,23 +1,6 @@
1
1
  import React, { PropsWithChildren } from 'react';
2
- import { Theme } from '@rescui/ui-contexts';
3
- export type MenuItemSize = 's' | 'm' | 'l';
4
- export type MenuItemIconPlacement = 'left' | 'right';
5
- export type MenuItemMode = 'clear' | 'classic' | 'rock';
6
- export interface MenuContextValue {
7
- iconPlacement?: MenuItemIconPlacement;
8
- disabled?: boolean;
9
- disableCursor?: boolean;
10
- size?: MenuItemSize;
11
- mode?: MenuItemMode;
12
- theme?: Theme;
13
- itemTag?: React.ElementType;
14
- wrapWithLi: boolean;
15
- registerItem?: (ref: HTMLElement) => void;
16
- unregisterItem?: (ref: HTMLElement) => void;
17
- activeItemRef?: HTMLElement;
18
- isKeyboardNavigating: boolean;
19
- resizeIcons?: boolean;
20
- }
2
+ import type { MenuContextValue } from '../types';
3
+ export type { MenuContextValue, MenuItemMode, MenuItemIconPlacement, MenuItemSize } from '../types';
21
4
  export declare const DEFAULT_MENU_CONTEXT: MenuContextValue;
22
5
  export declare const MenuContext: React.Context<MenuContextValue>;
23
6
  export declare const useMenuContext: () => MenuContextValue;
@@ -1,46 +1,102 @@
1
1
  "use client";
2
+ import { c } from 'react-compiler-runtime';
2
3
  import React, { useContext } from 'react';
3
4
  import PropTypes from 'prop-types';
4
5
  const DEFAULT_MENU_CONTEXT = {
5
6
  disabled: false,
6
- isKeyboardNavigating: false,
7
+ keyboardNavigationEnabled: false,
7
8
  wrapWithLi: false,
8
- // eslint-disable-next-line @typescript-eslint/no-empty-function
9
- registerItem: () => {},
10
- // eslint-disable-next-line @typescript-eslint/no-empty-function
11
- unregisterItem: () => {}
9
+ registerItem: null,
10
+ unregisterItem: null,
11
+ currentActiveItemEl: null,
12
+ onItemFocus: null,
13
+ onItemKeyDown: null,
14
+ onItemMouseEnter: null
12
15
  };
13
16
  const MenuContext = /*#__PURE__*/React.createContext(DEFAULT_MENU_CONTEXT);
14
17
 
15
- const useMenuContext = () => useContext(MenuContext);
16
-
17
- const MenuProvider = _ref => {
18
- let {
19
- children,
20
- disabled = DEFAULT_MENU_CONTEXT.disabled,
21
- isKeyboardNavigating = DEFAULT_MENU_CONTEXT.isKeyboardNavigating,
22
- wrapWithLi = DEFAULT_MENU_CONTEXT.wrapWithLi,
23
- registerItem = DEFAULT_MENU_CONTEXT.registerItem,
24
- unregisterItem = DEFAULT_MENU_CONTEXT.unregisterItem,
25
- ...restProps
26
- } = _ref;
27
- return /*#__PURE__*/React.createElement(MenuContext.Provider, {
28
- value: {
18
+ const useMenuContext = () => {
19
+ return useContext(MenuContext);
20
+ };
21
+
22
+ const MenuProvider = t0 => {
23
+ const $ = c(16);
24
+ let children;
25
+ let restProps;
26
+ let t1;
27
+ let t2;
28
+ let t3;
29
+ let t4;
30
+
31
+ if ($[0] !== t0) {
32
+ ({
33
+ children,
34
+ disabled: t1,
35
+ wrapWithLi: t2,
36
+ registerItem: t3,
37
+ unregisterItem: t4,
38
+ ...restProps
39
+ } = t0);
40
+ $[0] = t0;
41
+ $[1] = children;
42
+ $[2] = restProps;
43
+ $[3] = t1;
44
+ $[4] = t2;
45
+ $[5] = t3;
46
+ $[6] = t4;
47
+ } else {
48
+ children = $[1];
49
+ restProps = $[2];
50
+ t1 = $[3];
51
+ t2 = $[4];
52
+ t3 = $[5];
53
+ t4 = $[6];
54
+ }
55
+
56
+ const disabled = t1 === undefined ? DEFAULT_MENU_CONTEXT.disabled : t1;
57
+ const wrapWithLi = t2 === undefined ? DEFAULT_MENU_CONTEXT.wrapWithLi : t2;
58
+ const registerItem = t3 === undefined ? DEFAULT_MENU_CONTEXT.registerItem : t3;
59
+ const unregisterItem = t4 === undefined ? DEFAULT_MENU_CONTEXT.unregisterItem : t4;
60
+ let t5;
61
+
62
+ if ($[7] !== disabled || $[8] !== registerItem || $[9] !== restProps || $[10] !== unregisterItem || $[11] !== wrapWithLi) {
63
+ t5 = {
29
64
  disabled,
30
- isKeyboardNavigating,
31
65
  wrapWithLi,
32
66
  registerItem,
33
67
  unregisterItem,
34
68
  ...restProps
35
- }
36
- }, children);
69
+ };
70
+ $[7] = disabled;
71
+ $[8] = registerItem;
72
+ $[9] = restProps;
73
+ $[10] = unregisterItem;
74
+ $[11] = wrapWithLi;
75
+ $[12] = t5;
76
+ } else {
77
+ t5 = $[12];
78
+ }
79
+
80
+ let t6;
81
+
82
+ if ($[13] !== children || $[14] !== t5) {
83
+ t6 = /*#__PURE__*/React.createElement(MenuContext.Provider, {
84
+ value: t5
85
+ }, children);
86
+ $[13] = children;
87
+ $[14] = t5;
88
+ $[15] = t6;
89
+ } else {
90
+ t6 = $[15];
91
+ }
92
+
93
+ return t6;
37
94
  };
38
95
 
39
96
  MenuProvider.propTypes = {
40
97
  size: PropTypes.oneOf(['l', 'm', 's']),
41
98
  mode: PropTypes.oneOf(['clear', 'classic', 'rock']),
42
99
  theme: PropTypes.oneOf(['light', 'dark']),
43
- disableCursor: PropTypes.bool,
44
100
  disabled: PropTypes.bool,
45
101
  iconPlacement: PropTypes.oneOf(['left', 'right']),
46
102
  itemTag: PropTypes.elementType
@@ -1,21 +1,33 @@
1
1
  import React from 'react';
2
- import type { JSX, AllHTMLAttributes, ReactNode } from 'react';
3
- import { Theme } from '@rescui/ui-contexts';
4
- import { MenuItemSize, MenuItemMode, MenuItemIconPlacement } from './menu-context';
5
- export interface MenuItemProps extends Omit<AllHTMLAttributes<Element>, 'size'> {
2
+ import type { JSX } from 'react';
3
+ export type { MenuItemProps } from '../types';
4
+ export declare const MenuItem: React.ForwardRefExoticComponent<{
6
5
  className?: string;
7
6
  tag?: React.ElementType;
8
7
  icon?: JSX.Element;
9
- size?: MenuItemSize;
10
- mode?: MenuItemMode;
11
- theme?: Theme;
8
+ size?: import("./menu-context").MenuItemSize;
9
+ mode?: import("./menu-context").MenuItemMode;
10
+ theme?: import("@rescui/ui-contexts").Theme;
12
11
  disabled?: boolean;
13
- disableCursor?: boolean;
14
12
  selected?: boolean;
15
- highlighted?: boolean;
16
- iconPlacement?: MenuItemIconPlacement;
17
- children?: ReactNode;
13
+ iconPlacement?: import("./menu-context").MenuItemIconPlacement;
14
+ children?: React.ReactNode;
18
15
  key?: string;
19
- }
20
- export declare const MenuItem: React.ForwardRefExoticComponent<MenuItemProps & React.RefAttributes<HTMLElement>>;
16
+ 'data-test'?: string;
17
+ hoverIcon?: JSX.Element;
18
+ } & Omit<React.AllHTMLAttributes<Element>, keyof {
19
+ className?: string;
20
+ tag?: React.ElementType;
21
+ icon?: JSX.Element;
22
+ size?: import("./menu-context").MenuItemSize;
23
+ mode?: import("./menu-context").MenuItemMode;
24
+ theme?: import("@rescui/ui-contexts").Theme;
25
+ disabled?: boolean;
26
+ selected?: boolean;
27
+ iconPlacement?: import("./menu-context").MenuItemIconPlacement;
28
+ children?: React.ReactNode;
29
+ key?: string;
30
+ 'data-test'?: string;
31
+ hoverIcon?: JSX.Element;
32
+ }> & React.RefAttributes<HTMLElement>>;
21
33
  export default MenuItem;
@@ -1,8 +1,11 @@
1
1
  "use client";
2
- import React, { useState, useEffect, cloneElement } from 'react';
2
+ import _extends from '@babel/runtime-corejs3/helpers/esm/extends';
3
+ import { c } from 'react-compiler-runtime';
4
+ import React, { useState, cloneElement, useEffect } from 'react';
3
5
  import cn from 'classnames';
4
6
  import PropTypes from 'prop-types';
5
7
  import { useThemeWithUndefined } from '@rescui/ui-contexts';
8
+ import CheckOutlineIcon from '../_virtual/check-outline.js';
6
9
  import styles from '../menu.p.module.css.js';
7
10
  import { useMenuContext } from './menu-context.js';
8
11
  const ICON_PLACEMENT_STYLES = {
@@ -22,96 +25,374 @@ const SIZE_STYLES = {
22
25
  const THEME_STYLES = {
23
26
  light: styles.themeLight,
24
27
  dark: styles.themeDark
28
+ };
29
+ const HOVER_ICON_WILL_REPLACE_STYLES = {
30
+ custom: styles.hideCustomIconOnHover,
31
+ selected: styles.hideSelectedIconOnHover,
32
+ none: ''
25
33
  }; // eslint-disable-next-line complexity
26
34
 
27
- const MenuItemInner = (_ref, ref) => {
28
- let {
29
- className,
30
- tag,
31
- children,
32
- icon,
33
- size = 'm',
34
- mode = 'classic',
35
- theme,
36
- disabled,
37
- disableCursor,
38
- selected,
39
-
40
- /* @private */
41
- highlighted,
42
- iconPlacement = 'left',
43
- ...restProps
44
- } = _ref;
35
+ const MenuItemInner = (t0, ref) => {
36
+ const $ = c(67);
37
+ let children;
38
+ let className;
39
+ let disabled;
40
+ let hoverIcon;
41
+ let icon;
42
+ let onFocus;
43
+ let onKeyDown;
44
+ let onMouseEnter;
45
+ let restProps;
46
+ let role;
47
+ let selected;
48
+ let t1;
49
+ let t2;
50
+ let t3;
51
+ let tabIndex;
52
+ let tag;
53
+ let theme;
54
+
55
+ if ($[0] !== t0) {
56
+ ({
57
+ className,
58
+ tag,
59
+ children,
60
+ icon,
61
+ size: t1,
62
+ mode: t2,
63
+ theme,
64
+ disabled,
65
+ selected,
66
+ iconPlacement: t3,
67
+ onFocus,
68
+ onKeyDown,
69
+ onMouseEnter,
70
+ role,
71
+ tabIndex,
72
+ hoverIcon,
73
+ ...restProps
74
+ } = t0);
75
+ $[0] = t0;
76
+ $[1] = children;
77
+ $[2] = className;
78
+ $[3] = disabled;
79
+ $[4] = hoverIcon;
80
+ $[5] = icon;
81
+ $[6] = onFocus;
82
+ $[7] = onKeyDown;
83
+ $[8] = onMouseEnter;
84
+ $[9] = restProps;
85
+ $[10] = role;
86
+ $[11] = selected;
87
+ $[12] = t1;
88
+ $[13] = t2;
89
+ $[14] = t3;
90
+ $[15] = tabIndex;
91
+ $[16] = tag;
92
+ $[17] = theme;
93
+ } else {
94
+ children = $[1];
95
+ className = $[2];
96
+ disabled = $[3];
97
+ hoverIcon = $[4];
98
+ icon = $[5];
99
+ onFocus = $[6];
100
+ onKeyDown = $[7];
101
+ onMouseEnter = $[8];
102
+ restProps = $[9];
103
+ role = $[10];
104
+ selected = $[11];
105
+ t1 = $[12];
106
+ t2 = $[13];
107
+ t3 = $[14];
108
+ tabIndex = $[15];
109
+ tag = $[16];
110
+ theme = $[17];
111
+ }
112
+
113
+ const size = t1 === undefined ? "m" : t1;
114
+ const mode = t2 === undefined ? "classic" : t2;
115
+ const iconPlacement = t3 === undefined ? "left" : t3;
45
116
  const {
46
117
  unregisterItem,
47
118
  registerItem,
48
- activeItemRef,
49
- isKeyboardNavigating,
119
+ currentActiveItemEl,
120
+ keyboardNavigationEnabled,
121
+ onItemFocus,
122
+ onItemKeyDown,
123
+ onItemMouseEnter,
50
124
  wrapWithLi,
51
125
  ...menuContext
52
126
  } = useMenuContext();
53
127
  const actualTheme = useThemeWithUndefined(menuContext.theme ?? theme);
54
128
  const [thisRef, setThisRef] = useState(null);
55
- useEffect(() => {
56
- return () => unregisterItem(thisRef);
57
- }, [unregisterItem, thisRef]);
58
- let autoTag = 'span';
129
+ let autoTag = "span";
59
130
 
60
131
  if (restProps.href) {
61
- autoTag = 'a';
62
- } else if (restProps.onClick) {
63
- autoTag = 'button';
132
+ autoTag = "a";
133
+ } else {
134
+ if (restProps.onClick) {
135
+ autoTag = "button";
136
+ }
64
137
  }
65
138
 
66
139
  const Tag = menuContext.itemTag ?? tag ?? autoTag;
67
- const actualIconPlacement = menuContext.iconPlacement ?? iconPlacement ?? 'left';
140
+ const actualIconPlacement = menuContext.iconPlacement ?? iconPlacement ?? "left";
68
141
  const actualMode = menuContext.mode ?? mode;
69
142
  const actualSize = menuContext.size ?? size;
70
- const actualDisableCursor = menuContext.disableCursor ?? disableCursor;
71
143
  const resizeIcons = menuContext.resizeIcons ?? false;
72
- const iconElement = icon ? /*#__PURE__*/cloneElement(icon, {
73
- className: cn(icon.props.className, styles.icon, resizeIcons && styles.resizedIcon),
74
- 'data-render-all-sizes': true
144
+ const actualDisabled = menuContext.disabled || disabled;
145
+ const iconElement = /*#__PURE__*/ /*#__PURE__*/React.isValidElement(icon) ? /*#__PURE__*/cloneElement(icon, {
146
+ className: cn(icon.props.className, styles.icon, styles.customIcon, resizeIcons && styles.resizedIcon),
147
+ "data-render-all-sizes": true
75
148
  }) : null;
76
- const actualHighlighted = highlighted || activeItemRef === thisRef && isKeyboardNavigating;
149
+ let t4;
150
+
151
+ if ($[18] !== hoverIcon) {
152
+ t4 = /*#__PURE__*/React.isValidElement(hoverIcon);
153
+ $[18] = hoverIcon;
154
+ $[19] = t4;
155
+ } else {
156
+ t4 = $[19];
157
+ }
77
158
 
78
- const handleRef = r => {
79
- registerItem(r);
80
- setThisRef(r);
159
+ const hasHoverIcon = t4;
160
+ const rovingTabIndex = currentActiveItemEl === thisRef ? 0 : -1;
161
+ let resolvedTabIndex = tabIndex ?? 0;
81
162
 
82
- if (typeof ref === 'function') {
83
- ref(r);
84
- } else if (ref != null && typeof ref === 'object') {
85
- ref.current = r;
163
+ if (keyboardNavigationEnabled) {
164
+ resolvedTabIndex = rovingTabIndex;
165
+ }
166
+
167
+ if (actualDisabled) {
168
+ resolvedTabIndex = -1;
169
+ }
170
+
171
+ useEffect(() => {
172
+ if (!thisRef || actualDisabled || !registerItem) {
173
+ return;
86
174
  }
87
- };
88
175
 
89
- const handleKeyDown = e => {
90
- if (isKeyboardNavigating && (e.key === ' ' || e.key === 'Enter')) {
91
- e.preventDefault();
176
+ registerItem(thisRef);
177
+ return () => unregisterItem?.(thisRef);
178
+ }, [actualDisabled, registerItem, thisRef, unregisterItem]);
179
+ let t5;
180
+
181
+ if ($[20] !== ref) {
182
+ t5 = r => {
183
+ if (r) {
184
+ setThisRef(r);
185
+ }
186
+
187
+ if (typeof ref === "function") {
188
+ ref(r);
189
+ } else {
190
+ if (ref != null && typeof ref === "object") {
191
+ ref.current = r;
192
+ }
193
+ }
194
+ };
195
+
196
+ $[20] = ref;
197
+ $[21] = t5;
198
+ } else {
199
+ t5 = $[21];
200
+ }
201
+
202
+ const handleRef = t5;
203
+ let t6;
204
+
205
+ if ($[22] !== onItemKeyDown || $[23] !== onKeyDown || $[24] !== thisRef) {
206
+ t6 = e => {
207
+ onKeyDown?.(e);
208
+
209
+ if (e.defaultPrevented || !onItemKeyDown) {
210
+ return;
211
+ }
212
+
213
+ if (thisRef) {
214
+ onItemKeyDown(e, thisRef);
215
+ }
216
+ };
217
+
218
+ $[22] = onItemKeyDown;
219
+ $[23] = onKeyDown;
220
+ $[24] = thisRef;
221
+ $[25] = t6;
222
+ } else {
223
+ t6 = $[25];
224
+ }
225
+
226
+ const handleKeyDown = t6;
227
+ let t7;
228
+
229
+ if ($[26] !== onFocus || $[27] !== onItemFocus || $[28] !== thisRef) {
230
+ t7 = e_0 => {
231
+ onFocus?.(e_0);
92
232
 
93
- if (e.target && e.target.click) {
94
- e.target.click();
233
+ if (onItemFocus && thisRef) {
234
+ onItemFocus(thisRef);
95
235
  }
236
+ };
237
+
238
+ $[26] = onFocus;
239
+ $[27] = onItemFocus;
240
+ $[28] = thisRef;
241
+ $[29] = t7;
242
+ } else {
243
+ t7 = $[29];
244
+ }
245
+
246
+ const handleFocus = t7;
247
+ let t8;
248
+
249
+ if ($[30] !== onItemMouseEnter || $[31] !== onMouseEnter || $[32] !== thisRef) {
250
+ t8 = e_1 => {
251
+ onMouseEnter?.(e_1);
252
+
253
+ if (onItemMouseEnter && thisRef) {
254
+ onItemMouseEnter(thisRef);
255
+ }
256
+ };
257
+
258
+ $[30] = onItemMouseEnter;
259
+ $[31] = onMouseEnter;
260
+ $[32] = thisRef;
261
+ $[33] = t8;
262
+ } else {
263
+ t8 = $[33];
264
+ }
265
+
266
+ const handleMouseEnter = t8;
267
+ let hoverIconWillReplace = "none";
268
+
269
+ if (hasHoverIcon && iconElement && actualIconPlacement === "right") {
270
+ hoverIconWillReplace = "custom";
271
+ } else {
272
+ if (hasHoverIcon && selected) {
273
+ hoverIconWillReplace = "selected";
96
274
  }
97
- };
98
-
99
- const Wrapper = wrapWithLi ? 'li' : 'div';
100
- return /*#__PURE__*/React.createElement(Wrapper, {
101
- className: cn(styles.wrapper, className, ICON_PLACEMENT_STYLES[actualIconPlacement], MODE_STYLES[actualMode], SIZE_STYLES[actualSize], THEME_STYLES[actualTheme]),
102
- "data-test": 'menu-item__wrapper',
103
- "data-rs-internal": 'menu__menu-item'
104
- }, /*#__PURE__*/React.createElement(Tag, {
105
- onKeyDown: handleKeyDown,
106
- ref: handleRef,
107
- className: cn(styles.menuItem, (menuContext.disabled || disabled) && styles.disabled, selected && styles.selected, actualHighlighted && styles.highlighted, actualDisableCursor && styles.disableCursor),
108
- "data-test": 'menu-item',
109
- "data-rs-internal": 'menu__menu-item__inner',
110
- tabIndex: 0,
111
- ...restProps
112
- }, iconElement, /*#__PURE__*/React.createElement("span", {
113
- className: styles.content
114
- }, children)));
275
+ }
276
+
277
+ const Wrapper = wrapWithLi ? "li" : "div";
278
+ const t9 = ICON_PLACEMENT_STYLES[actualIconPlacement];
279
+ const t10 = MODE_STYLES[actualMode];
280
+ const t11 = SIZE_STYLES[actualSize];
281
+ const t12 = THEME_STYLES[actualTheme];
282
+ let t13;
283
+
284
+ if ($[34] !== className || $[35] !== t10 || $[36] !== t11 || $[37] !== t12 || $[38] !== t9) {
285
+ t13 = cn(styles.wrapper, className, t9, t10, t11, t12);
286
+ $[34] = className;
287
+ $[35] = t10;
288
+ $[36] = t11;
289
+ $[37] = t12;
290
+ $[38] = t9;
291
+ $[39] = t13;
292
+ } else {
293
+ t13 = $[39];
294
+ }
295
+
296
+ const t14 = "menu-item__wrapper";
297
+ const t15 = "menu__menu-item";
298
+ const t16 = keyboardNavigationEnabled ? "presentation" : undefined;
299
+ const t17 = cn(styles.menuItem, actualDisabled && styles.disabled, selected && styles.selected, HOVER_ICON_WILL_REPLACE_STYLES[hoverIconWillReplace]);
300
+ const t18 = restProps["data-test"] ?? "menu-item";
301
+ const t19 = "menu__menu-item__inner";
302
+ const t20 = role ?? (keyboardNavigationEnabled ? "option" : undefined);
303
+ const t21 = keyboardNavigationEnabled && selected !== undefined ? selected : restProps["aria-selected"];
304
+ const t22 = keyboardNavigationEnabled && actualDisabled ? true : restProps["aria-disabled"];
305
+ const t23 = styles;
306
+ let t24;
307
+
308
+ if ($[40] !== children) {
309
+ t24 = /*#__PURE__*/React.createElement("span", {
310
+ className: styles.content
311
+ }, children);
312
+ $[40] = children;
313
+ $[41] = t24;
314
+ } else {
315
+ t24 = $[41];
316
+ }
317
+
318
+ const t25 = selected && /*#__PURE__*/React.createElement(CheckOutlineIcon, {
319
+ className: cn(styles.icon, styles.selectedIcon, resizeIcons && styles.resizedIcon),
320
+ "data-test": "menu-item__selected-icon",
321
+ "data-render-all-sizes": true
322
+ });
323
+ const t26 = hasHoverIcon && /*#__PURE__*/React.cloneElement(hoverIcon, {
324
+ className: cn(hoverIcon.props.className, styles.icon, styles.hoverIcon, resizeIcons && styles.resizedIcon, hoverIconWillReplace !== "none" && styles.hoverIconNoReserve),
325
+ "data-render-all-sizes": true
326
+ });
327
+ let t27;
328
+
329
+ if ($[42] !== t23.contentWrapper || $[43] !== t24 || $[44] !== t25 || $[45] !== t26) {
330
+ t27 = /*#__PURE__*/React.createElement("span", {
331
+ className: t23.contentWrapper
332
+ }, t24, t25, t26);
333
+ $[42] = t23.contentWrapper;
334
+ $[43] = t24;
335
+ $[44] = t25;
336
+ $[45] = t26;
337
+ $[46] = t27;
338
+ } else {
339
+ t27 = $[46];
340
+ }
341
+
342
+ let t28;
343
+
344
+ if ($[47] !== Tag || $[48] !== handleFocus || $[49] !== handleKeyDown || $[50] !== handleMouseEnter || $[51] !== handleRef || $[52] !== iconElement || $[53] !== resolvedTabIndex || $[54] !== restProps || $[55] !== t17 || $[56] !== t18 || $[57] !== t20 || $[58] !== t21 || $[59] !== t22 || $[60] !== t27) {
345
+ t28 = /*#__PURE__*/React.createElement(Tag, _extends({}, restProps, {
346
+ onFocus: handleFocus,
347
+ onKeyDown: handleKeyDown,
348
+ onMouseEnter: handleMouseEnter,
349
+ ref: handleRef,
350
+ className: t17,
351
+ "data-test": t18,
352
+ "data-rs-internal": t19,
353
+ role: t20,
354
+ "aria-selected": t21,
355
+ "aria-disabled": t22,
356
+ tabIndex: resolvedTabIndex
357
+ }), iconElement, t27);
358
+ $[47] = Tag;
359
+ $[48] = handleFocus;
360
+ $[49] = handleKeyDown;
361
+ $[50] = handleMouseEnter;
362
+ $[51] = handleRef;
363
+ $[52] = iconElement;
364
+ $[53] = resolvedTabIndex;
365
+ $[54] = restProps;
366
+ $[55] = t17;
367
+ $[56] = t18;
368
+ $[57] = t20;
369
+ $[58] = t21;
370
+ $[59] = t22;
371
+ $[60] = t27;
372
+ $[61] = t28;
373
+ } else {
374
+ t28 = $[61];
375
+ }
376
+
377
+ let t29;
378
+
379
+ if ($[62] !== Wrapper || $[63] !== t13 || $[64] !== t16 || $[65] !== t28) {
380
+ t29 = /*#__PURE__*/React.createElement(Wrapper, {
381
+ className: t13,
382
+ "data-test": t14,
383
+ "data-rs-internal": t15,
384
+ role: t16
385
+ }, t28);
386
+ $[62] = Wrapper;
387
+ $[63] = t13;
388
+ $[64] = t16;
389
+ $[65] = t28;
390
+ $[66] = t29;
391
+ } else {
392
+ t29 = $[66];
393
+ }
394
+
395
+ return t29;
115
396
  };
116
397
 
117
398
  const MenuItem = /*#__PURE__*/React.forwardRef(MenuItemInner);
@@ -119,15 +400,11 @@ MenuItem.propTypes = {
119
400
  size: PropTypes.oneOf(['l', 'm', 's']),
120
401
  mode: PropTypes.oneOf(['clear', 'classic', 'rock']),
121
402
  theme: PropTypes.oneOf(['light', 'dark']),
122
- onClick: PropTypes.func,
123
403
  disabled: PropTypes.bool,
124
- disableCursor: PropTypes.bool,
125
404
  selected: PropTypes.bool,
126
-
127
- /** @ignore */
128
- highlighted: PropTypes.bool,
129
405
  icon: PropTypes.element,
130
406
  iconPlacement: PropTypes.oneOf(['left', 'right']),
131
- tag: PropTypes.elementType
407
+ tag: PropTypes.elementType,
408
+ hoverIcon: PropTypes.element
132
409
  };
133
410
  export { MenuItem, MenuItem as default };
@@ -1,5 +1,5 @@
1
1
  export declare function getFirstItem(sortedItems: HTMLElement[]): HTMLElement;
2
2
  export declare function getLastItem(sortedItems: HTMLElement[]): HTMLElement;
3
- export declare function getNextItem(sortedItems: HTMLElement[], activeItem: HTMLElement): HTMLElement;
4
- export declare function getPrevItem(sortedItems: HTMLElement[], activeItem: HTMLElement): HTMLElement;
3
+ export declare function getNextItem(sortedItems: HTMLElement[], activeItem?: HTMLElement): HTMLElement;
4
+ export declare function getPrevItem(sortedItems: HTMLElement[], activeItem?: HTMLElement): HTMLElement;
5
5
  export declare function htmlElementsComparator(a: HTMLElement, b: HTMLElement): 0 | 1 | -1;